:help打开帮助文档
ctrl+]打开vim上的帮助文档上的分文档
//配置vim插件在终端执行的命令步骤
声明:这款插件是我的前主管大人配置的,确实比较好用分享给大家,后面的快捷键很多也是针对这款插件,希望大家喜欢!
(home目录克隆下插件的配置)
git clone https://github.com/iceleaf916/vimfiles
mv vimfiles/ .vim
cd .vim
cd .. //(回到home目录)
ln -s .vim/.vimrc .vimrc
Cd .vim
Cd scripts/
Sudo apt-get install python-yaml //( 提示缺少yaml模块的话,安装这个模块)
//安装之前可以使用update更新下./update.sh
./create.py
Ls
./download.sh
vim 主要用法:
1定位:
enter: 到下一行的第一个字符
+: 到下一行的第一个字符
-:到上一行的第一个字符
:行数,定位到某行
/string 定位某个字符串 按enter查找, n向下一个 N向上一个
gg定位首行
nG:跳转到n行
n|: 跳转到本行的第n列
G定位末行
:0: 文首
:
文尾0:行首
: 行尾,n$移动到下面n行的行尾
^: 命令移动到某行的第一个非空格字符
‘H’:跳转到行的第一字符(Home);’M’:跳转到行的中间字符(Middle);’L’:跳转到行的末尾(Last)
nH,nL移动到距离屏幕顶部和顶部n行的位置
ctrl+f 向后移动一页
ctrl+b 向上移动一页
ctrl+d 向下移动半页
ctrl+u 向上移动半页
30%: 跳转到文件的30%处
fx向后移动到x字符
Fx向前移动到x字符
(tx向右移动到x字符前
Tx向左移动到x字符后)
nw: 向后移动n个单词
nb: 向前移动n个单词
#:移动到当前单词的相同的上一个单词(要部分匹配用g#)
: 移动当前单词的相同的下一个单词(要部分匹配用g)
%:光标放在括号上,移动到匹配的括号上去
‘:按两下,匹配到上次的修改的位置
zz: 置当前行到视图的中间位置,方便观察上下行
zt: 将光标所在的行移动到屏幕的顶端,zb:使光标移动到屏幕的底端
w:向后移动单词,Nw移动到N 个字母,移动到单词的首字母
e:移动到单词的词尾字符,ea可以直接给单词追加内容,E移动到单词的词尾忽略标点
9999k: 移动到头文件
:\C匹配大写
:\c匹配小写
2 复制 剪切 删除等
.命令是重复上次操作的命令,非常有用
全部删除:按esc后,然后dG
全部复制:按esc后,然后ggyG
全选高亮显示:按esc后,然后ggvG或者ggVG
ctrl+G:查看当前行信息
x:删除后面的字符,X删除钱一个字符,nx,nX
dd: 删除一行,D:删除到行尾
dt: 将光标放到s上,想删除到‘(’为止,输入dt(
d/it:向后删除到it(it不删除),d?it,向后删除至it(it删除)
d
:剪切当前的光标到行尾d:剪切当前光标到行首caw:删除某个单词并输入新的,改写该单词(同cw)daw:删除某个单词并输入新的,包括单词后面的空格yaw:复制一个单词,光标可以在单词的任意位置,yw复制一个单词,ynw复制n个单词J:删除某行的换行符,并并入到上一行;nJ链接后面的n行dw:删除单词单词加后面的空格de:删除单词,dE删除范围包括括号在内的单词结尾u:撤销上一次的操作,U:撤销当前行的所有修改ctrl+r:对撤销的撤销i:在光标前插入a:在光标后插入I:在行首插入A:在行尾插入o:在当前行下面另起一行,并变为插入模式O:在当前行的上面另起一行,并变为插入模式s:删除当前的字符,并进入编辑模式,S: 删除整行字符,并进入编辑模式e!:放弃修改并重新打开文件c:命令表示change,命令与d类似只是完成操作会进入插入模式,c2w删除2个单词并写入,不会删除单词后的空格,cc可以删除一整行,但是同时会保留行首的缩进格式nyy:复制光标后的N行ynj:向下复制n行ynk:向上复制n行y
:拷贝到行尾
Y: 拷贝一整行
v%: 将光标放在{上, 输入v%可以选中{}中的所有内容
P: 粘贴于光标前
p: 粘贴于光标后
3P: 粘贴3次
‘2p: 粘贴最后第二次删除的内容
x,p:交换两个相邻的字符
.: 重复刚才的操作
~:更改字母的大小写,同时光标进入下一个字符,n~:把后面n个字母的大小写状态改变
n~: 改变光标开始的n个字母大小写
g~~: 改变当前行的大小写
U: 可视模式下选择的字母会改成大写字母
u: 可视模式下选择的字母会改成小写字母
gUU: 当前行变大写,ngUU…n行
guu: 当前行变小写,nguu…n行
rc: 用c来替换光标所在当前字符
nrc: 用n个c来插入到当前光标
nr: 把后面的n个字符替换掉
r[enter]:会删除光标下的字符并插入一个换行符
ctrl+v:可是模式下块选中,选中某个块之后,输入o命令表示跳到另一边(other side)
3替换复制等
%s/str1/str2/g:替换每一行的str1为str2
:10, 20 s/str1/str2/g 替换10到20之间的str1为str2
:10,
s/str1/str2/g替换10到最后一行的str1为str2:.,
s/str1/str2/g 替换从当前行到末尾
:1,$ s/str1/str2/gc(替换之前confirm)?
:g/str1/s//str2/g 替换正文中所有出现str1为str2
-
4 保存操作
:f file:将当前文件重命名为file
:f 当前当前的文件名称和状态以及文件的行数,光标所在文件位置等
:w 保存当前的写入
:wq 保存并退出(:x)
:w file将当前文件的内容另存到file
:r file读取文件file的内容并写入到光标所在位置的后面
-
a,bw file将a行到b行的内容写入到file文件
:1, .w file将一行到当前行写入到file -
.,
wfile将当前行到最后一行写入到file:.,.+5wfile 将光标所在行的6行写入到文件file:/str1/wfile将搜索到文字所在的一整行写入到file:/str1/,/str2/wfile将搜索到的包含str1至str2的所有行写入到文件file5正则表达式:/str1/ 搜索文件中包含str1的字符串:/str1/搜索字符串在行首的,并在第一个字符的和类似
匹配字符串尾部,在最后一个字符
\<匹配一个字的字头,字符串可以在任意位置
>匹配一个字的字尾,字符串可以在任意位置
[str]匹配str中的任意一个字符
[^str]不匹配str中的任何一个字符
[a-b]匹配a至b中的任意一个字符
:g/^(.*) \n\1 /d 删除相同的行保留最后一行
:g/^\s* \n\s∗ /d
6 vim编辑二进制文件
vim -b filename: 用二进制的方式打开一个文件,键入命令(:%!xxd),可以看到文本以二进制的方式显示出来
(:%!xxd -r)恢复文本原来的显示,去掉二进制显示模式:
:%!xxd -g 1 表示每1个字节为1组
:%!xxd -g 2 表示每2个字节为1组(默认)
:%!xxd -g 4 表示每4个字节为1组
7set 命令
:set ignorecase 设置查找忽略大小写
:set noignorecase 设置不忽略大小写
:set incsearch 在输入查找的过程当中就进行匹配,以免输入错误,无法匹配
:set nowrapscan 在查找的过程当中遇到文件开头或者结尾就停止查找