您的位置:首页 > 其它

个人常用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