VIM基础使用

配置

配置文件

$HOME/.vimrc

常用配置

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set ts=4
syntax enable
syntax on
set number 显示行号
set list 显示行结尾符
set backspace=indent,eol,start 设置backspace在编辑模式可用
set incsearch 输入即查找
set hlsearch

文件

打开文件

vim filename

或者:

vim
:e filename

保存文件

保存当前文件:
:w 或者:write
:up或者:update

另存为新文件:
:w newfile
:up newfile
:w! newfile
:up! newfile

关闭文件

保存并关闭文件:
:x 或者 :wq 或者 ZZ

不保存并关闭:
:q 或者 :q! 关闭当前文件
:qa 关闭所有打开的文件

编辑

正常模式

vim filename

编辑模式

vim filename
i 在当前光标处插入
a 在当前光标后插入
o 新起一行插入

命令模式

<ESC>从编辑模式回到正常模式,然后输入:(冒号)进入命令模式

定位光标

^ 光标到行首
$ 光标到行尾
b 向后移动一个单词
w 向前移动一个单词
e 移动到下一个单词的结尾
k 向上移动一行
j 向下移动一行
h 向右移动一个字符
l 向左移动一个字符
gg 移动到第一行
G 移动到最后一行
:10 光标移动到第10行
%75 光标移动到全文的75%处
CTRL+F 向后翻一页
CTRL+B 向前翻一页

查找替换

:/pattern 在文档中查找pattern,n查找下一个,N查找前一个
:s/pattern/another/ 把当前行中出现的第一个pattern替换为another
:s/pattern/another/gi 把当前行中出现得所有pattern替换为another,不区分大小写
:%s/pattern/another/gi 把全文中的pattern替换为another,不区分大小写
:1-10s/pattern/another/gi 把1-10行中的pattern替换为another,不区分大小写
:s/pattern/another/g 4 把当前行后面4行中的pattern替换为another
:s/\<his\>/her/ 整个单词替换
:%s/\(good\|nice\)/awesome/g 把全文中的good或者nice替换为awesome
:%s/\<\(hey\|hi\)\>/hai/g 整个单词替换,hey或者hi替换为hai
:%s/awesome/wonderful/gc 替换并要求确认
:%s/^/\=line(".") . ". "/g 在所有行前面添加行号

多文件查找

:vimgrep pattern *.txt 在当前目录下的txt文件中查找pattern
:vimgrep pattern **/*.txt 递归在当前目录下的txt文件中查找pattern
:cn 下一个vimgrep查找
:cN 前一个vimgrep查找
:clist 列出所有得vimgrep查找
:cc 3 跳转到第3个vimgrep查找

多文件替换

:vimgrep foo
:cdo s/foo/bar/gc | update

撤销重做

u 撤销
5u 撤销最近5次
U 撤销全部
:redo 或者 CTRL+R 重做

窗口

分割窗口

:split 水平分割窗口
:vsplit 垂直分割窗口
CTRL+W {j, k, h, l} 在不同窗口间切换

标签窗口

vim -p file1 file2 file3 分别在标签窗口中打开3个文件
:tabe filename 在新标签窗口中打开文件
:tabn 下一个标签窗口
:tabp 前一个标签窗口
:tabn 10 第10个标签窗口
:tabs 列出所有打开的标签窗口
:tabc 或者 :tabclose 关闭当前标签窗口

工具

:!ls 在vim中执行ls命令

帮助

Last modified: le 2018/11/04 04:00