vim 使用快捷键
linux 

在我看来,vim是linux上内置的强大的文本编辑器。

基本操作

vim有三种模式:一般模式、编辑模式和命令行模式。 使用’i, I, o, O, a, A, r, R'按键可以从一般模式进入到编辑模式。 使用’:, /, ?‘按键可以从一般模式进入到命令行模式。 通过[ESC]按键可以从其他模式进入到一般模式。

一般模式可用快捷键

下面表格中的 n 都表示数字

光标移动

按键说明
h或向左箭头(←)光标向左移动一个字符
j或向下箭头(↓)光标向下移动一个字符
k或向上箭头(↑)光标向上移动一个字符
l或向下箭头(→)光标向右移动一个字符
[ctrl + f]屏幕向下移动一页,同[page down]
[ctrl + b]屏幕向上移动一页,同[page up]
[ctrl + d]屏幕向下移动半页
[ctrl + u]屏幕向上移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
n [space]n 为数字,按下数字后,再按下空格,光标会向右移动这一行的n个字符
0 或 [Home]光标移动到这行最前面字符处
$ 或 [End]光标移动到这行最后面字符处
H光标移动到这个屏幕的最上方那行的第一个字符处
M光标移动到这个屏幕的中央的那行的第一个字符处
L光标移动到这个屏幕的最下方的那行的第一个字符处
G光标移动到这个文件的最后一行
nG光标移动到这个文件的第n行
gg光标移动到文件的第一行
N [enter]光标向下移动n行

查找

按键说明
:n1,n2s/word1/word2/gn1, n2为数字,在第n1与n2行之间查找word1,并将该字符串替换为word2
:1,$s/word1/word2/g全文查找word1,并将该字符串替换为word2
:1,$s/word1/word2/gc全文查找word1,并将该字符串替换为word2,需要用户确认

使用正则表达示查找替换时,需要注意正则表达式的正确使用。其他符号同普通正则相同,但是以下需要转义:

元字符含义
\+匹配1-任意个前一个字符
\?匹配0-1个前一个字符
\{n,m}匹配n-m个前一个字符
\{n}匹配n个前一个字符
\{n,}匹配n-任意个前一个字符
\{,m}匹配0-m个
\<匹配单词词首
\>匹配单词词尾

删除、复制、粘贴

按键说明
x, Xx为向后删除一个字符,X为向前删除一个字符
nx连续向后删除n个字符
dd删除光标所在行
ndd删除光标所在的向下n行
d1G删除光标所在到第一行的所有数据
dG删除从光标所在到最后一行的所有数据
d$删除光标所在处到该行的最后一个字符
d0删除光标所在处到该行最前面的一个字符
yy复制光标所在的那一行
nyy复制光标所在的向下n行
y1G复制光标所在行到第一行的所有数据
yG复制光标所在行到最后一行的所有数据
y0复制光标所在的字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据
p, Pp为将已复制的数据在光标下一行粘贴,P为粘贴在光标的上一行
J将光标所在行与下一行的数据结合成同一行
c重复删除多个数据,例如向下删除10行 [10cj]
u复原前一个操作
[ctrl + r]重复上一个操作
.重复前一个操作

命令行模式命令

按键说明
:w将编辑的数据写入硬盘文件中
:w!强制写入,不一定成功
:q离开文件
:q!强制离开而不保存文件
:wq 或 :x保存后离开
ZZ若文件没有改动,则不保存离开,若文件已经被改动,则保存后离开
:w[filename]将编辑的数据保存成另一个文件
:r[filename]在编辑的数据中,读入另一个文件,并将数据加到光标所在行后面
:n1,n2 w[filename]将n1到n2的内容保存成名为filename的文件

多窗口功能

  1. 使用大写的O参数来垂直分屏
    vim -O file1 file2
    

2.使用小写的o参数来水平分屏 bash vim -o file1 file2 3. 关闭当前窗口,不能关闭最后一个窗口 bash ctrl+w c 4. 关闭当前窗口,如果只剩下最后一个了,则退出vim bash ctrl+w q 5. 上下分割当前打开的文件 bash ctrl+w s 6. 上下分割,并打开一个新的文件 bash :sp filename 7. 左右分割当前打开的文件 bash Ctrl+w v 8. 左右分割,并打开一个新的文件 :vsp filename 9 把光标移到右边的屏 bash Ctrl+w l 10. 把光标移到左边的屏中 bash Ctrl+w h 11. 把光标移到上边的屏中 bash Ctrl+w k 12. 把光标移到下边的屏中 bash Ctrl+w j 13. 把光标移到下一个的屏中 bash Ctrl+w w 14. 向右移动屏幕 bash Ctrl+W L 15. 向左移动屏幕 bash Ctrl+w H 16. 向上移动屏幕 bash Ctrl+w K 17. 向下移动屏幕 bash Ctrl+W J

vim的一些设置

vim设置内容往往通过修改~/.vimrc来进行一些默认的设置(其注释是 “) 可以参考像 IDE 一样使用 vim

# 将不可见字符显示出来
set invlist

# 开启实时搜索功能
set incsearch
# 搜索时大小写不敏感
set ignorecase
# 关闭兼容模式
set nocompatible
# vim 自身命令行模式智能补全
set wildmenu
# 打开语法高亮
syntax on
 
# 自适应不同语言的智能缩进
filetype indent on
# 将制表符扩展为空格
set expandtab
# 设置编辑时制表符占用空格数
set tabstop=4
# 设置格式化时制表符占用空格数
set shiftwidth=4
# 让 vim 把连续数量的空格视为一个制表符
set softtabstop=4
 
set cindent
# 总是显示状态栏
set laststatus=2
# 显示光标当前位置
set ruler
# 开启行号显示
set number
# 高亮显示当前行/列
set cursorline
set cursorcolumn
# 高亮显示搜索结果
set hlsearch

set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

set showmatch
# 禁止折行
set nowrap
# 设置状态栏主题风格
let g:Powerline_colorscheme='solarized256'
local_offer #linux 
navigate_before navigate_next