个人常用vim操作以及插件
2016-03-11 09:25
337 查看
一.Vim的移动
粗体为常用
基础移动h左 k 上 j下 l 右 前面可加数字
单词移动
w: 移动到下一个单词开头
e: 移动到下一个单词结尾
b: 移动到上一个单词开头
前面可加数字
整行移动
数字0: 移动到行首
$: 移动到行末
+: 移动到下一行开头
-: 移动到上一行开头
^: 移动到行首非空位置
n|: 移动到第n列
滚屏
C-f: 往前滚一屏幕
C-b: 往后滚一屏幕
C-d: 往前滚半屏幕
C-u: 往后滚半屏幕
C-e: 往后滚一行
C-y: 往前滚一行
调整光标位置
z+enter: 顶端
z.: 中间
z-: 底端
970z将970移到屏幕中间
屏幕中移动
H: 移动到屏幕顶端的行
M: 移动到屏幕中央的行
L: 移动到屏幕低端的行
nH: 屏幕顶端往下第n行
nL: 屏幕底端往上第n
根据文本快移动
(: 移动到当前句子开头
): 移动到当前句子末尾
{:移动到当前这一段的开头
}:移动到当前这一段的末尾
[[:移动到当前这一节的开头
]]:移动到当前下一节的开头
根据行号来移动
nG: 跳到第几行
G : 文件末尾
gg: 文件开头
二.插入
字符位置插入i : 当前字符前插入
a : 当前字符后插入
行位置插入
A : 当前行行首插入
I : 当前行行末插入
o : 当前行下一行插入
O : 当前行上一行插入
tips:10i* <Esc> 行输入10个*
:10o* <Esc> 列输入10个*
:c-v选定行I输入ESC
合并行
J
三.删除(读作删除其实是剪切)
字符删除x: 删除光标所在字符删除
X: 删除光标所在字符前删除
单词删除
dw: 删除到下一个单词开头
de: 删除到本单词末尾
dE: 删除到本单词末尾包括标点
db: 删除到前一个单词
dB: 删除到前一个单词包括标点
行删除
dd: 删除一整行
d$: 删除光标位置到本行结尾
d0: 删除光标位置到本行行首
四.修改
字符替换r: 单个字符替换
R: 连续替换
~: 更改大小写
单词修改
cw: 从光标处改到单词尾
cb: 从光标处改到单词头
行修改
c$ 或是 C: 从光标处修改到本行末尾
c0: 从光标处修改到单词头
cc 或是 S: 删除整行从头修改
s: 删除光标所在位置,然后插入
五.复制
粘帖p: 粘帖
单词和字符复制
ynl: 向右复制n个字符
ynh: 向左复制n个字符
ynw: 向前复制n个单词
ynb: 向后复制n个单词
行复制
y0: 复制到行首
y$: 复制到行末
yy: 复制整行
yH: 从当前行复制到屏幕顶端
yL: 从当前行复制到屏幕低端
六.恢复
撤销与恢复u:撤销
U: 撤销本行操作
c-r: 重做
.: 重复做上衣动作
e!: 全文回复
七.ex命令
保存命令补遗:n r file将file文件的内容加到当前文件n行号
:=打印总行号
/pattern/匹配到的第一个Pattern的位置,可替代行号使用
:[range]ya a
pu a拷贝到a储存器,将a放到新的文件中
范围及其操作
:n,m:n-m行
:.:当前行
:$:最后一行
:%:所有行
+/-n:前/后n行
+m,-n前m后n行
[range] d\y: 剪切 复制
[range] mv\co\t target
:n pu把剪切板中的内容粘贴到第n行下面
多文件切换
:e file编辑file文件
:p
:n
:last:前一个文件,下一个文件,最后一个文件
%指代文件名
#前一个文件
:split
:vsplit切分打开文件
搜索
fx Fx: 单行移动到前一个/后一个字符x的位置
/pattern: 向后匹配第一个pattern位置,无pattern重复上一次
?pattern: 向前同上
n\N: 向同一/逆方向继续匹配
*\#: 同上不过只匹配整个单词
组合Ex命令
|线:分割符
全局搜索
g/pattern/p\nu: 显示所有包含pattern的行nu表示打印行号
g 和 s 指令例子
:g/^/m 0:匹配所有行扔到第一行(倒序文件)
:g/^/+1 d
g/^/d|m.:删除偶数行,奇数行
:%s/.*/&\r&/
s/\(.*\)/\1\r\1/:double所有行
:g/^/t.: 同上
:%s/__.*\(__\)\@!/\ /g: @!不含前面一项的行
:%s/\n\n\@!/\ /g
g/./,/^$/j: 删去单回车
:v/%s/s/:/\ /g: g和s联合使用
:g/ccc/if getline ('.') !~'ddd' | s/aaa/bbb/g
:g/#ifdef WIN32/+1,/#else|#endif/-1 t $:提取WIN32平台下代码到文件末尾
八.插件指令及其使用
vim-css-color: css中输入颜色和rgb会显示颜色a.vim: 头文件跳转
:A,AS,AV,AT,AN:各种角度跳到头文件
:IH,IHS,IHV,IHT,IHN:各种角度跳到选定文件
minibufexpl.vim: 文件切换条
enter:打开一个文件 d:关闭一个
:bn
:bp:打开上一个/下一个
:bnum:打开第几个标签
nerdtree(tabs): 浏览文件
o:打开文件 t:在新TAB打开 i,s:横切数切
I:显示隐藏 m:打开nerdmenu R:刷新
nerdcommenter:多行注释
\cc/cn: 多行注释
\cu: 多行去掉注释
\cs: 前面有*的注释
multiple-cursors:多行修改
c-n:多项选定修改 i进入修改mod
ctrlp: c-p 模糊搜索当前文件并打开
easy_motion: s+2字符快速搜索
vimproc vimshell:
:VimShell打开vimshell
补全:
youcompleteme
neocomplcache.vim
vim-snippet neosnippet neosnippet-snippets ultisnips
整体语法美化:
vim-indent-guides:语法对齐 \ig开启
vim-better-whitespace:无效空格提醒
syntastic: 错误提醒
tagbar: ctags
语言语法:
haskel:vim-hdevtools, ghcmod-vim, necos-ghc, hlint
clojure:vim-clojure-staticm, vim-fireplace
go: vim-go
jade:vim-jade
closure template: vim-soy
coffeescript: vim-coffee-script
swift.vim: swift
commonlisp: vim-slime slimv
laTeX: vimtex
cjsx: vim-cjsk
rails: vim-rails
qucik-scope: f命令(行内搜索)高亮
主题美化相关:vim-colors-solarized,vim-airline, vim-hybird, molokai
其他
vim-fugitive: 显示git信息
九.附录
匹配符.: 匹配任何除换行符外的单个字符
\s: 匹配一个空白符(space或tab)
\S: 一个非空白符
^: 仅匹配行首,也即必须以模式开头
$: 仅匹配行尾,也即必须以模式结尾
\<: 匹配词首,单词定义为一连串的字母,标点空白和数字均视为分隔符
>: 匹配词尾。
\<…>: 匹配整个单词(前面命令中的*和#就是用这个来只匹配单词)。当然\<和>不必一起使用,可以分开使用
限量符
*: 前一个字符出现0次或多次,如a*,可以匹配”, ‘a’, ‘aa’或’aaa’等
+: 前一个字符出现1次或多次
\=: 前一个字符出现0次或1次
{n,m}: 前一个字符出现n到m,如a\{3,5},则可以匹配’aaa’, ‘aaaa’或’aaaaa’
{n}: 前一个字符出现n次
{n,}: 前一个字符出现n次到最多次数(32000)
{}: 0次或多次,与*一致
操作符
|:或操作符
其他匹配符
[…]: [a-zA-Z]
…:
\n:
相关文章推荐
- VIM编译器显示TAB和TAB转换为空格
- 菜鸟说给菜鸟听之VIM--入门篇(1)
- cygwin下vim方向键不好用的解决方案
- 安装使用Ubuntu之vim必须知道的细节
- Ruby学习笔记二帮助生成Vim添加代码头的代码
- PHP工程师VIM配置分享
- ruby开发vim插件小结
- VIM中设置php自动缩进为4个空格的方法详解
- Vim命令高级用法
- linux Vim基本操作方法
- 手把手教你将Vim改装成一个IDE编程环境(图文) 吴垠
- 搭建Vim为自定义的PHP开发工具的一些技巧
- 使用python开发vim插件及心得分享
- linux系统中使用Vim删除偶数行或者奇数行
- Python开发如何在ubuntu 15.10 上配置vim
- Mac 配置VIM插件 提示"E492:Not an editor command:^M"
- vim配置文件
- Vim编辑器快捷键
- vim的配置(自动缩进,语法高亮等)
- [Linux学习笔记] Linux文本编辑器Vim/Vi