linux下vim换行,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做希腊语,希伯来语,绘制盒子等等。 :) –

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在vim中,可以使用以下命令进: 1. 在插入模式下,按下“Enter”键即可。 2. 在普通模式下,可以使用“o”或“O”命令进。其中,“o”命令在当前的下方插入一个新,并将光标移动到新的开头;“O”命令在当前的上方插入一个新,并将光标移动到新的开头。 3. 在普通模式下,可以使用“:s/\n/替的内容/g”命令进。其中,“\n”表示符,替的内容可以是任意字符串。这个命令将所有的符替为指定的字符串。 希望这些方法能够帮助你在linux中使用vim命令进。 ### 回答2: 在Linux中使用vim是一个常用的操作。当我们需要在一代码中输入多个命令或子命令时,我们需要以便于阅读和管理。是通过以下几种方式实现的: 1. 按下“Enter”键:按下“Enter”键将在当前光标位置处进。这意味着你的代码被拆分成两,并且新的缩进将与原有一致。 2. 按下“Shift”和“Enter”键:如果你需要在不同的语句之间进,而不是在同一内输入多个命令,那么你可以使用“Shift+Enter”键。这将在光标所在的下一插入一个新,并且不继承前一的缩进。 3. 使用“\”符号:如果你需要将代码写成多且不希望在时进缩进,你可以使用反斜杠“\”符号。在当前的结尾处插入“\”,然后按下“Enter”键,这将让你在下一的开始处继续输入你的命令。注意反斜杠符号需要放在结尾处,不能放在首。 以上是在Linux中使用vim的三种方式。 总结一下,操作在代码编辑中非常重要,可以提高代码的可读性,让代码更加结构化。Linux中的vim编辑器提供了多种实现方式,支持快速有效地进操作。同时,在日常工作中熟练掌握这些技巧可以提高工作效率,提高程序员的编写代码的效率。 ### 回答3: 在Linux操作系统中,vim是一款非常强大的文本编辑器。通常在使用vim时,我们可能需要插入一个符,将一句话分成多显示或者添加一个空。不同于其他编辑器,vim时有相应的命令和快捷键。下面就来谈一下如何在vim中进操作。 1. 插入新vim中,可以使用快捷键"o"或"O"来插入新的一。在普通模式下按下"o"键,在当前光标的下方插入一个新的空,并且自动进入插入模式,可以直接在新的一上面开始输入。按下大写字母"O"在光标的上方插入一个新的空,并进入插入模式。 2. 在正文中,我们经常需要将一句话拆分成多编辑和展示。在vim中,可以使用"J"键进的操作。在普通模式下,将光标移动到想要的位置,按下"J"键,vim将当前和下一合并,即在当前的末尾添加一个空格和下一的内容。这个操作保留空格和符号(如标点符号),不改变原来的格式。 3. 自动 当我们打开一个较长的文件时,如果一过长超出了标准编辑界面,vim自动显示水平滚动条,需要不停地水平滚动来查看文本。因此我们需要手动设置自动。在vim中,可以使用"set wrap"命令实现自动。输入"set wrap"后,vim自动将长折成多并自动,便于查看和编辑文本。 总之,以上是vim中实现的几种方式:插入新操作,"J"键操作,以及自动的设置。在日常编写文本过程中,可以灵活运用这些操作,提高效率和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值