vim技巧整理

来源:互联网 发布:怎样用命令压缩linux下 编辑:程序博客网 时间:2024/04/30 15:46

1复制上一行到下一行                yyp
2光标不动,屏幕内容滚动            Ctrl+E,Ctrl+Y
<C-N><C-P> ;: 插入模式下自动完成填词
<C-X><C-L> ;: 行自动完成(超级有用)
/<C-R><C-W> ;: 把单个<cword>单词放入搜索或者命令行
/<C-R><C-A> ;: 把字符串中有的单词<CWORD>放入搜索或者命令行
<C-O> ;: 依次沿着你的跳转记录向回跳 (从最近的一次开始)
<C-I> ;: 依次沿着你的跳转记录向前跳

;:-----------------------------------------------------------------------------
;:" 在分割窗口中快速切换
map <C-J> <C-W>j<C-W>_
map <C-K> <C-W>k<C-W>_
;:-----------------------------------------------------------------------------

从剪切板复制到vim:
"+  "*两个剪切板是系统剪切板。

快捷方式“Shift+Insert”就可以了,如果你在使用Gvim的话,直接用鼠标中键也可起到相同的作用。
VIM具有多个剪切板,目的是为了用户在做较复杂的字符处理的时候,可以更方便的复制粘贴。请现在使用一下“:reg”命令
把剪贴板的编号带上不就可以了?现在先按ESC,退出编辑模式,然后一词按 "+p这三个字符

如何将系统剪切板里的内容复制进VIM当中,您已经清楚了。那如何将ViM中复制的字符粘贴到其他地方呢?很简单,我们只需要把要复制的文字,复制进" +剪切板不就可以了?("+剪切板是系统剪切板,忘记了?)在VIM中,复制的指令是y(在非编辑模式下按y就可以了),那要将文本复制进指定的剪切板, 和粘贴指定剪切板内容的方法一样,只需要加上剪切板的编号就可以了。举个例子,我们希望把VIM中的一段文本复制下来,然后粘贴到浏览器的地址栏中:第一 步,现把需要复制的文字选中(非编辑模式下),然后在键盘上依次按"+y这三个字符,OK!已经复制下来了,现在用:reg命令看看,是不是在"+剪切板 中了?

f<a>:移动光标到当前行的字符a上,nf<a>移动光标到当前行的第n个a字符上

用于整体移动代码,调整代码时很方便。
set shiftwidth=4
shift + < 左移一行
shift + > 右移一行

你可以很快的将游标移到所在行的任何位置

$ 移到游标所在行的行尾
^ 移到该行第一个非空白的字元

0 移到该行的开头位置
#| 移到该行的第 # 个位置 例: 5| 12|

如果找本行一个字符,可以用f后者t,然后使用;,继续查找

        ;       重覆上一个 f, t, F, 或 T 的动作
, 反向重覆上一个 f, t, F, 或 T 的动作

% 寻找有无对应的 () {} 或 []

H 移到游标到画面的最上方 (HIGHEST)
M 移到游标到画面的中间 (MIDDLE)
L 移到游标到画面的最下方


标示位置
--------

你可以在档案□做些标记再随时返回被标记的位置.

m char (MARK) 把这个地方标示成 char
' char (quote character) 跳到被标为 char的那一行
'' (按两次') 回到刚才的位置

char 可以是小写的 a-z中的任一个 . 一个标记在除了下面的这两种情况
外会一直存在

1) 重覆使用相同的标示 char .
或 2) 删掉了被标示的那一行.



文字段落
--------------

有时候一段一段的移动游标会比较方便.我们可以用 {,},(,) 来达到这些功能

{ (左大括号) 跳到上一段的开头
} (右大括号) 跳到下一段的的开头.

( (左小括号) 移到这个句子的开头
) (右小括号) 移到下一个句子的开头

[[ 跳往上一个函式
]] 跳往下一个函式
 


重复输入同一字符
--------------
有时,我们可能想多次输入同一字符,VIM的插入功能可以很好的完成这项工作
命令 80i=^ESC 一次可以输入80个字符= ,当然,80a=^ESC 也可以完成上述功能。
请注意:此处的^ESC表示键盘左上方上的ESC键。
 

替换:
--------------

:s/src/dst              将本行搜索到的第一个 src 替换为 dst
:%s/src/dst           将全文所有的 src 替换为 dst
:s/src/dst/g           将本行的 src 替换为 dst
:$,$... s/src/dst/g     在指定范围内替换src为dst,其中
                $,$... 为指定行号,例: :2,5,6 s/hi/hello/g
 
去除搜索后的高亮显示:
--------------

在Vim里编辑文件,搜索过后会一直对关键字高亮,很是不方便,使用如下命令即可取消高亮:

:noh

或者

:nohlsearch

 

 

利用grep.vim进行搜索

-------------------

nnoremap <silent> <F3> :Grep<CR>

 


在cpp和.h中进行切换

-----------------

利用A.vim AS,或者A命令

 

 

使用cscope

find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
cscope -bkq -i cscope.files

 

 

原创粉丝点击