您的位置:首页 > 其它

VIM使用笔记

2015-11-23 15:16 351 查看

vim配置文件:

普通用户:~/.vimrc

root:/root/.vimrc

hi Comment ctermfg =green                      //注释颜色
hi String ctermfg =darkred                         //修改字符串颜色
hi Type ctermfg =yellow                             //修改类型颜色
hi Number ctermfg =darkblue                    //修改数字颜色
hi Constant ctermfg =blue                         //修改常量颜色
hi Statement ctermfg =darkyellow            //修改声明颜色
(hi也可用highlight)


vim插件

1.wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x
2.YCM http://www.alexeyshmalko.com/2014/youcompleteme-ultimate-autocomplete-plugin-for-vim/[/code] 

vim常用命令

增删改插:
A:在行末插入字符
a:在光标后插入字符
i:在光标前插入字符
I:在行首插入字符
r{char}:替换光标处字符为字符char
cw/ce:替换光标所在处到该单词结尾的字符
o:在下一行新增一行输入字符
O:在上一行新增一行输入字符
x:删除光标处字符
X:删除光标处前一个字符

字符串相关:
:/word      //向下查找word字符串
:?word      //向上查找word字符串
:%s /abc  /efg /g               //将所有abc字符串替换为efg字符串

文件操作:
:e <path/to/file>   //打开文件
:wq/:x/ZZ           //保存并退出文件
:q!         //强制退出不保存文件
:qa!            //强制退出所以正在编辑的文件
:saveas <path/to/file>  //另存为文件

多文件操作:
vim file1 file2 ... filen       //打开所有想要打开的文件
:e file     //再打开一个文件,并且此时vim里会显示出file文件的内容
:split         //水平切分窗口
:vsplit     //垂直切分窗口

:bn         //下一个文件
:bp         //上一个文件
:ls         //列出打开的文件,带编号
:b1~n      //切换至第n个文件

<C-6>       //两文件间的切换
<C-w><dir>  //切换到前/下/上/后一个窗格
<C-w>h/j/k/l    //同上
<C-w>w      //依次向后切换到下一个窗格中
<C-w>_      //最大化窗口尺寸
<C-v>+/-    //增加/减小窗口尺寸


鼠标位置移动:

行内移动:
0:移动到行首
^:移动到本行第一个非blank字符
$:移动到行尾
g_:移动到行尾最后一个非blank字符

h:相对当前位置向左移动n个字符

l:相对当前位置向右移动n个字符

fa:跳到相对想在位置向右的第n个字符为a的地方

ta:跳到相对想在位置向右的第n个字符为a的前一个字符处

页内移动:

j:相对当前位置向下移动到n行

k:相对当前位置向上移动到n行

gg:跳到第n行

G:跳到第n行,G为跳到页末

e:跳到相对想在位置向右的第n个单词的最后一个字符

w:跳到相对想在位置向右的第n个单词的第一个字符
%:匹配括号移动

*:匹配光标当前所在的单词,向下移动光标到第n个匹配单词

#:匹配光标当前所在的单词,向上移动光标到第n个匹配单词


快捷操作

1.多字符操作:
<start position><command><end position>
例:
0y$:将本行第一个到最后一个字符复制下来
0gU$:将本好第一个到最后一个字符变为大写
0gu$:将本好第一个到最后一个字符变为小写

2.区域选择:
<action>a<object> 或 <action>i<object>
例:假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 o 的位置。(借用陈皓的例子,我也曾经学习
他的《VIM简明教程》和《跟我一起写makefile》,很赞的牛人,这是他的博客,http://coolshell.cn,有时
间就去溜溜呗!)
vi":选择""之间的foo,不包括""
va":选择""之间的foo,包括""
vi):会选择 "foo"
va):会选择("foo")
v2i):会选择 map (+) ("foo")
v2a):会选择 (map (+) ("foo"))

3.块操作:
[0/^]<C-v><dir><operation><ESC>
例:选择3行代码块的每行末尾添加字符串"feison"
0<C-v>2j$Afeison<ESC>
选择3行代码块的每行行首插入字符串"--"
0<C-v>2jI--<ESC>
注:
特殊<operation>
1.>向右缩进
2.<向左缩进
3.=自动缩进
4.J把所有行连接成一行

4.宏录制:
qa <operation list> q @a/
@@
qa:开启宏录制并将操作记录到寄存器a
<operation list>:操作序列
q:退出宏录制
@a:按录制的宏a操作一次
例:qypq:复制当前行并粘贴
@a:执行该动作一次
10@@:执行该动作10次

5.自动提示:
<C-n>/<C-p>

6.执行外部shell命令:
:!<cmd>


寄存器操作

1.官方帮助手册
:h registers
2.寄存器分类
2.1.无名(unnamed)寄存器:"",缓存最后一次操作内容;
2.2.数字(numbered)寄存器:"0 ~ "9,缓存最近操作内容,复制与删除有别, "0寄存器缓存最近一次复制的内容,"1-"9缓存最近9次删除内容
2.3.行内删除(small delete)寄存器:"-,缓存行内删除内容;
2.4.具名(named)寄存器:"a ~ "z或"A - "0Z,指定时可用;
2.5.只读(read-only)寄存器:":, "., "%, "#,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名;
2.6.表达式(expression)寄存器:"=,只读,用于执行表达式命令;
2.7.选择及拖拽(selection and drop)寄存器:"*, "+, "~,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用;
2.8.黑洞(black hole)寄存器:"_,不缓存操作内容(干净删除);
2.9.模式寄存器(last search pattern):"/,缓存最近的搜索模式。

3.查看寄存器内容
:reg         查看所有寄存器内容
:reg 寄存器名  查看单个寄存器内容

4.寄存器操作:
normal模式下,"<reg>[y/p]表示复制内容到寄存器,粘贴寄存器内容指定位置
从vim内容与外部内容之间的拷贝:"+y(+寄存器是外部和vim通用寄存器)


vim常用命令示意图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: