热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux下vim换行,Vim不会接受换行

我有一个vim默认安装在Linux上,在一个系统上有vt52终端仿真器和unicode功能。Vim不会接受换行一切都工作正常,直到今天,当

我有一个vim默认安装在Linux上,在一个系统上有vt52终端仿真器和unicode功能。Vim不会接受换行

一切都工作正常,直到今天,当我将我的vt52 terminfo文件从临时本地用户目录移到永久系统目录中时...起初看起来很好,但突然间,当我尝试执行冒号命令通过按回车键(CTRL-J,或键本身==十进制10),vim只是闪烁屏幕,但不执行命令或离开命令输入模式。 但是,如果我按CTRL-M获得回车符(十进制13),vim确实接受该命令。

我试图再次复制文件回到~/.terminfo,但它并没有解决问题...

我想这可能是A tty的问题或损坏的vimrc文件,所以... 第一我尝试删除.viminfo和.vimrc文件,并在启动vim之前执行stty sane,但这两个都没有帮助。我刚刚注意到,输入在插入模式下也不起作用,但CTRL-M确实如此。

然后我从bash shell检查,使用CTRL-V,当我按下CTRL-M时,它显示^M,当我按CTRL-J时,它只是进入并不显示任何东西。所以 - 再次检查 - 我做了stty raw和cat - | hexdumpx,并且确实按下回车只返回0x0a,并且按CTRL-M只返回0x0d;所以键盘驱动程序正在原始模式下返回正确的字符,并且我以明智的方式重新测试了它们,这显然将它们映射到0x0A。

我用tic重新编译了termcap文件,并将它复制到~/.terminfo/v/vt52u之前,它在那里工作正常,并且已经复制到/usr/share/terminfo/v/vt52u。

但我没有看到任何可能导致问题的termcap文件。

vt52u|vt52 with UTF-8:\

:am:eo:rs=\Ee\Eb0\Eco:is=\EE\Ee:\

:nl=^j:sr=\EI:bl=^g:ta=^i:\

:ho=\EH:cr=^m:le=\ED:nd=\EC:do=\EB:up=\EA:ta=^i:nw=^j^m:xn:\

:cm=\EY%+ %+ :it#8:co#75:li#24:\

:sc=\Ej:rc=\Ek:\

:vi=\Ef:ve=\Ee:\

:so=\Eb0\Ec3:se=\Eb0\Eco:mh=\Eb8\Eco:mr=\Ebo\Ec0:me=\Eb0\Eco:\

:cl=\EH\EJ:cb=\Eo:cd=\EJ:ce=\EK:\

:km:kb=^h:

编辑: 我已经分离到实验5下面列出,如被任何东西所引起,或从上述termcap文件丢失,或者在它的抽动编译器转换为terminfo的问题。

因此 - 什么termcap条目丢失或哪个现有的条目导致问题?

----------------------额外的实验,我试图找出它-------------- -----

1:在vim中做:set term显示 ....这是正确的。所以VIM应该使用上面的termcap文件,但我不知道从哪里(例如:缓存版本,不是 - 或损坏)和:版本只显示+ termcap,它说vim应该使用tic编译的termcap文件这是我一直试图给它。

2:我重新编译了ncurses-5.9,并重新安装它以确保没有损坏的文件存在。即使:./configure --prefix=/usr --without-cxx --without-cxx-binding --without-ada --without-manpages --without-progs --without-tests --with-build-cc=gcc --with-shared --without-debug --without-profile --without-gpm --without-dlsym --without-sysmouse --enable-sigwinch --enable-hashmap --enable-scroll-hints --build=i686-linux --host=arm-linux-gnueabi --without-pthread --enable-widec --with-fallbacks=vt52u --disable-big-core --enable-termcap --enable-getcap-cache

3:做一个:set termcap显示比termcap文件定义的更多的键,这是坏的... termcap只定义了一个键......而那个应该是^ H不是^?,因此VIM的值不匹配,但其他termcap值都匹配,因为^ [与termcap文件中的escape \ E相同。所以,我证明vim肯定会加载正确的termcap文件,因为t_so的值对于vt52u是唯一的。 。所以 - 这不是一个腐败的termcap .... :(怪异

t_kb ^? ^[[

t_kd ^@ ^[}

t_sr=^[I t_bc=^[D t_le=^[D t_cd=^[J t_ce=^[K t_cl=^[H^[J

t_me=^[b0^[co t_mr=^[b0^[co t_ve=^[e t_vi=^[f t_nd=^[C t_se=^[b0^[c0

t_ZH=^[bo^[c0 t_ZR=^[b0^[co t_so=^b0^[c3 t_cm=^[Y%p1%' '%+%c%p2%' '%+%c

4:重新编译VIM 7.4,删除所有内置的终端,并确保没有损坏的文件,没有效果;没修好退格键的默认值是错误的

echo "Please Edit feature.h so that NO_BUILTIN_TERMCAPS is always #defined."

sleep 5

vim /src/feature.h

./configure --prefix=/usr/ --build=i686-linux --host=arm-linux-gnueabi --with-features=big --disable-darwin --disable-selinux --disable-xsmp --disable-xsmp-interact --disable-mzschemeinterp --disable-tclinterp --disable-netbeans --disable-sniff --disable-gui --disable-cscope --disable-workshop --enable-multibyte --disable-gtktest --disable-gpm --disable-sysmouse --disable-xim --enable-pythoninterp=dynamic --without-x --with-tlib=ncursesw vim_cv_toupper_broken="yes" vim_cv_terminfo="yes" vim_cv_tty_group="world" vim_cv_tty_mode="0620" vim_cv_getcwd_broken="yes" vim_cv_stat_ignores_slash="yes" vim_cv_memmove_handles_overlap="yes"

echo "Please Edit src/Makefile such that STRIP=arm-linux-gnueabi-strip"

sleep 5

vim src/Makefile

make

make install

5:在bash,我改变了终端类型设置为通用的“出口TERM = VT52”,而不是Unicode版本,与我抽动编译色彩支持* * NEWLINE问题冒险带着色彩指令牺牲品和VT52U的其他功能**我需要这些功能,但显然是有关我上面列出的termcap文件是有缺陷的。

+0

你用什么样的linux强制你使用vt52 TERM? –

+0

这是一个索尼PRS900,在ROM中运行monta vista linux。内核没有编译VT102 - 而VT102的内核驱动程序太复杂,无法适应索尼使用的电子纸内核驱动程序 - 所以我只是在一个pty上使用VT52用户空间终端。它很好地工作。 VT52终端在帧缓冲区上运行,并执行unicode,并处理电子纸显示特性,而不会占用太多内存。它让我用UTF-8做希腊语,希伯来语,绘制盒子等等。 :) –



推荐阅读
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • 本文介绍了Linux系统中的文件IO操作,包括文件描述符、基本文件操作函数以及目录操作。详细解释了各个函数的参数和返回值,并提供了代码示例。 ... [详细]
author-avatar
小胖菜鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有