VIM 使用记录
老李 Lv4

VIM 使用记录

操作篇

翻页

向上翻整页: ctrl-b (backward)

向下翻整页: ctrl-f (forword )

向上翻半页: ctlr-u (up)

向下翻半页: ctlr-d (down)

向上滚一行: ctrl-y

向下滚一行: ctrl-e

让光标所在的行居屏幕中央: zz

让光标所在的行居屏幕最上一行: zt (top)

让光标所在的行居屏幕最下一行: zb (bottom)

编辑篇

去除 ^M

1
2
3
vim file
:%s/^M//g
(^M 在 Linux 下要使用 Ctrl+V+M )

设置

设置自动缩进

1
set autoindent

使用空格代替 Tab

1
2
set tabstop=4
set expandtab

括号自动匹配添加

1
2
3
inoremap ( ()<LEFT>
inoremap { {}<LEFT>
inoremap [ []<LEFT>

vim 粘贴代码时缩进混乱

原因:在终端 vim 中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加。原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,vim 则把这些内容作为用户的键盘输入来处理。导致在遇到换行符的时候,如果 vim 开启了自动缩进,就会默认的把上一行缩进插入到下一行的开头,最终使代码变乱。

解决:

  1. 取消自动缩进:在命令模式下,使用:set nosmartindent:set noautoindent取消自动缩进,然后再粘贴即可。完成后再开启自动缩进:set smartindent:set autoindent,以上命令都可使用简写,比如:set si,可通过 vim 的帮助:help smartindent查看相应说明。

  2. paste 模式:vim 的编辑模式中,还有一个 paste 模式,在该模式下,可将文本原本的粘贴到 vim 中,以避免一些格式错误。通过:set paste:set nopaste进入和退出该模式。