一些关于vim的一些小知识

电子说

1.3w人已加入

描述

刚刚由WIN10转到ubuntu,在使用vim时因为保留windows系统习惯,经常CRTL+S导致vim无响应。通过网络查询得知问题原因:

CTRL-S为Terminal的组合键,在Terminal中,其用途是停止所有的输出。再加上在vim中的停止输入,所以造成屏幕输出卡死。

CTRL-Q就是撤销CTRL-S的组合键。

我发现在CRTL-Q后,之前输入在屏幕不输出的字符会一股脑冒出来,所以猜想数据都已经进栈,只是没有传输到显存。

解决办法:

1、进入主目录:cd ~。

2、ls -a 发现 .bashrc文件。

Win10

3、Vim .bashrc 插入模式 ,键入:i。

Win10

4、键入stty -ixon,禁止 "CTRL-S:挂起终端, "CTRL-Q:恢复终端 "这些键盘映射。

5、esc :wq 保存退出。

6、当前目录下键入vim .vimrc 创建并编辑.vimrc文件。

注意:是~/目录下,在usr/share/vim目录编辑vimrc文件正常情况是无法生效的,因为系统会首先检索用户目录下的配置文件。

** 7、键入。**

nmap:w!i

vmap:w!

imap:w!i

cmap:w!i

CRTL-S保存文件生效

nmap:q!

imap:q!

cmap:q!

CRTL-Q强制退出文件生效

8、键入ESC :wq 保存退出。

是ascii码

下面是map命令,根据上述命令格式即可完成快捷键个性化定制

在map命令前加上前缀可以组合成几种不同的命令,表示在不同的Vim模式下生效。

n 在普通模式 (normal) 下生效

i 在插入模式 (insert) 下生效

v 在可视化模式 (visual) 下生效

c 在命令模式 (command-line) 下生效

o 在命令等待时 (operator pending) 生效,比如输入d之后会等待输入下一个字符,可能是d或者数字

un 删除键的映射

nore 非递归 (non-recursive),意思是将a 映射为b,b映射为c,输入a的时候不会被映射为c,而只会映射为b

以上前缀可以组合使用,比如 nnoremap,nunmap,vnoremap 等。不带前缀的map命令默认对 normal 模式和 visual 模式生效

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分