【转】Vim常用技巧汇总
Vim分为三种模式
-
命令模式(command)——Vim进入就是
-
输入模式(insert)——按
i
切换,
esc
退出,切换到命令模式
i
是在游标前输入,a
是在游标后输入,o
是新建下一行输入I
为在目前所在行的第一个非空格符处开始输入
-
底线命令模式(last line)——
:
切换,回车执行
游标移动
- 上下左右键可以控制游标移动,另外前面加具体数字可跨步移动,如
30↓
一次向下30行 ctrl + f
向下移动一页ctrl + b
向上移动一页ctrl + d
向下移动半页ctrl + u
向上移动半页G
移动到文本最后一行gg
移动到文本第一行w
移动到下一个单词W
移动下一个单词开头,但忽略一些标点b
移动到上一个单词B
移动到上一个单词开头,忽略一些标点e
移动到游标所在单词的词尾或下一个单词的词尾
搜索
- 使用
/word
配合n
向下搜索 及N
向上搜索 :1,$s/word1/word2/gc
或:%s/word1/word2/gc
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 ,且在取代前显示提示字符给用户确认:#,#s/old/new/g
其中 #,# 代表的是替换操作的若干行中首尾两行的行号,最后不加c
替换不进行提示
排版
:ce(nter)
本行文字居中:le(ft)
本行文字靠左对齐:ri(ght)
本行文字靠右
删改或注释
在命令模式:
-
x
删除光标后的一个字符 -
X
删除光标前的一个字符 -
:1,10d
删除第1到弟10行 -
nx
连续向后删除 n 个字符,n 为数字,如10x
-
dw
从当前位置删除到下一个单词开头(包括中间空格) -
db
从当前位置删除到前一个单词的开头 (如果光标在单词上,则删除到该单词的开头) -
diw
删除光标所在的单词 (不包括单词前后的空格) -
daw
删除光标所在的单词 (包括单词前后的空格) -
dd
删除游标所在的那一整行 -
d$
删除游标所在处,到该行的最后一个字符 -
d0
删除游标所在处,到该行的最前面一个字符 -
dG
删除到文件末 -
dgg
删除到文件首 -
yy
复制游标所在的那一行 -
y$
复制光标所在的那个字符到该行行尾的所有数据 -
y0
复制光标所在的那个字符到该行行首的所有数据 -
用
v
或者
ctrl + v
进入可视模式选中删除和复制也很方便
v
字符选择,会将光标经过的地方反白选择V
行选择,会将光标经过的行反白选择ctrl + v
块选择,可以用长方形的方式选择资料
-
p
粘贴到光标下一行,P
粘贴到光标上一行 -
u
撤销上一个动作(undo),在撤销之后用ctrl + r
复原(redo) -
.
小数点符号可以重复上一次的动作 -
>
缩进4个空格,<
反向缩进
批量注释
ctrl + v
进入块选择模式,选中你要注释的行,再按大写的I
进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 esc
,Vim 会自动将你选中的所有行首都加上注释
多行编辑
ctrl + v
进入块选择模式,通过i
和j
键进行多行选择,j
键上下移动光标,l
键左右移动光标,也可以使用方向键
Vimdiff
vimdiff -d a.txt b.txt
比较两个文件,比diff更强大
多文件编辑
需要复制一个文件中的某段到另外一个文件中,而vim不能够在关闭的时候,把这段保留住。
vim file1 file2
- 然后
:sp file2
就可以同事看到两个窗口对应两个文件 - 用
ctrl+w+j
和ctrl+w+k
在两个窗口切换 - 或者先按下
ctrl + w
然后松开,再按箭头上下方向键↓↑切换
配置
:set nu
显示行号,:set nonu
取消行号:set all
显示目前所有的环境参数设定值:set autoindent
自动缩排:set noautoindent
取消自动缩排:set ruler
可显示最后一行的状态:set showmode
左下角那一行的状态:syntax on
进行语法检验,颜色显示:syntax off
关闭语法检验- 如果我们以Vim软件来查找一个文件内部的某个字符串时,这个字符串会被反白, 而下次我们再次以Vim编辑这个文件时,该查找的字符串反白情况还是存在。另外,当我们重复编辑同一个文件时,当第二次进入该文件时, 光标竟然就在上次离开的那一行的开头。这个功能可能是方便,但也有不方便的时候。怎么会这样呢?这是因为我们的Vim会主动的将你曾经做过的行为登录下来,那个记录动作的文件就是
~/.viminfo
,不想用这个功能,就直接删除~/.viminfo
。只要你曾经使用过Vim,那么你的家目录就会有这个文件。这个文件是自动产生的,你在Vim里头所做过的动作,就可以在这个文件内部找到。
vim打开后中文乱码
vim ~/.vimrc
,加上fileencodings、enc、fencs,代码如下
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030
123
转自CSDN,原文:Vim常用技巧汇总