Linux-vim常用命令
vim常用命令
"""""""""""""""""""""""""""""""""general
cmd""""""""""""""""""""""""""""""""""""
h
左移一位
l 右移一位
k
上移一位
j 下移一位
0 光标到当前行开头
$
光标到当前行末尾
^
光标移动到当前行的第一个非空格/制表符的字符上
w
光标移动到下一个单词的词首
e 光标移动到下一个单词的词尾
b 光标移动到上一个单词的词首
""""""""copy"""""""""""""
yy or Y
复制光标所在整行
y^
复制到光标所在行行首,不包括光标位置字符
y$
复制到光标所在行行尾,包括光标位置字符
yG
复制到文件尾
y1G
复制到文件首
nyy
复制光标所在行开始的n行
"""""""Paste"""""""""""""""
p
(小写)paste到光标后
P
(大写)paste到光标前
"""""""Delete"""""""""""""""""
x
(小写)delete光标前一个字符
X
(大写)delete光标后一个字符
dd
删除光标所在整行
dw
删除光标所在处一个单词
dG
删除光标所在行到文件尾
dgg
删除光标所在行到文件首
D
删除到行尾,包括光标处字符
d0
删除到行首,不包括光标处字符
""""""""undo""""""""
u
保存前撤销
ctrl+r redo重做
"""""""find"""""""""""
/string
相当于find,从光标处开始向下开始查找字符串string n查找下一个 N 查找上一个
?string 从光标处向上开始查找
n 查找上一个 N 查找下一个
"""""""Mapping"""""""""
nmap:映射一个Normal模式下的键,只有在Normal模式这个命令才会生效。
例:nmap ,s :source
$VIM/_vimrc<cr>
说明:绑定“,s”在Normal模式下映射为“:source
$VIM/_vimrc<cr>”命令,即重新读取配置
文件_vimrc 。
:
imap:映射一个Insert
模式下的键,只有在Insert 模式这个命令才会生效。
例:imap <F11> :r c:\boot.ini<cr>
说明:绑定F11在Insert 模式下的映射为“:r c:\boot.ini<cr>”命令,即读取c:\boot.ini文件到当前位置。
vmap:映射一个Visual模式下的键,只有在Visual模式这个命令才会生效。
例:vmap sb
"zbi<b><c-r>z</b><ESC>
说明:选中文字后按sb,选中文字的前后将分别加上<b>和</b>。
再例:vmap g/
y/<c-r>"<cr>
说明:映射“g/”这个组合键匹配选中的字并给予高亮显示。
map:用map绑定的键对Normal, Insert,
Visual和Command-line模式均有效。
例:map <F5> :ls<cr>:e #
说明:映射F5键,使得按下F5会显示当前可编辑文件的buffer,然后提示你输入buffer的行号。
详细参考http://blog.csdn.net/linux_kernel_fan/article/details/18894253
"""""""""""""""""""""""""""Window
Cmd""""""""""""""""""""""""""""""""""""""""""
""""Switch in the
window""""
ctrl+w+w 依次在多窗口切换
ctrl+w+h
切换到左边窗口
ctrl+w+l 切换到右边窗口
ctrl+w+k
同理
ctrl+w+j 同理
""""Change the size of
window"""""
:res[ize] +n 使得当前窗口增加n行
:res[ize]
-n 同上相反
:vertical res[ize] +n
增加n列的宽度
:vertical res[ize] -n 同上相反
ctrl+w+= 使所有窗口等宽、等高
n+ctrl+w+ +
增加n行高度
n+ctrl+w+ - 同上相反
n+ctrl+w+> 增加n列宽度
n+ctrl+w+<
同上相反
"""""""""""Miscellaneous""""""""""""""""""
CTRL-R
"""""""""""""""""""""""""""tag cmd"""""""""""""""""""""""""""""""""""""""""
< CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
<space> 显示光标下tag的原型定义
o
在一个新打开的窗口中显示光标下tag
u
更新taglist窗口中的tag
s
更改排序方式,在按名字排序和按出现顺序排序间切换
x
taglist窗口放大和缩小,方便查看较长的tag
+
打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
%
跳转到匹配的括号去
//有时候不明白是怎么匹配{}的
[[
跳到上一个代码块(‘{‘必须独占一行)
]]
跳到下一个代码块
gD
跳转到局部变量定义处
‘‘
跳转到光标上次停靠的地方,是两个‘‘,不是一个"
mx
设置书签,x是a-z的26字母
`x
跳转到书签处("`"是1左边键)
///进入v模式,才可以多行缩进
>
增加缩进,"x>"表示增加当前行以下x行的缩进
<
跟上面相反
ctrl+] 跳转到光标所行的标签处
ctrl+t 跳回上一个标签
ctrl+o 返回上一个标签
ctrl+w+] 新窗口显示当前光标下标签,光标跳到标签处
(:close可以关闭新窗口)
:tag tagname
将当前窗口文件替换为包含标签的文件
:stag tagname
分割当前窗口并光标跳到标签处(:split and :tag tagname )
:tnext
跳转到同一个标签的其他匹配处
:tselect
tagname 显示tgname一个列表,然后以输入匹配号,跳到指定的tagname标签处
:tfirst
跳到第一个匹配的标签
:[count]tprevious 向前[count]个匹配的标签处
:[count]tnext 向后[count]个匹配的标签处
:tlast
匹配最后一个标签
:tag write_<TAB> 自动补全剩余部分
:tag
/block
标签名前面的"/"告诉vim这不是一个确定的标签名而是一个模式,然后找到所有
匹配block标签
:ptag tagname 打开预览窗口显示tagname标签
:pclose
关闭预览窗口
:pedit filename
在预览窗口编辑指定文件
:psearch word
查找当前文件和任何包含word的文件,并在预览窗口显示匹配的word(很少用,
并且很容易搜索到注释里面的word)
""""""""""""""""""""""""""""""""""cscope
Cmd"""""""""""""""""""""""""""""""""""""
1. cscope cmd parameters
-R:
在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-q:
生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k:
在生成索引文件时,不搜索/usr/include目录
-i:
如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列
表。可以使用"-",表示由标准输入获得文件列表。
-I dir: 在-I选项指出的目录中查找头文件
-u:
扫描所有文件,重新生成交叉索引文件
-C: 在搜索时忽略大小写
-P path:
在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。
2. :cscope find cmd
params
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g:
查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t:
查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i:
查找包含本文件的文A件
"""""""""""""""""""""""""""""bufexplorer
Cmd"""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""omnicppcomplete
Cmd""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""c.vim plugin
Cmd"""""""""""""""""""""""""""""""
vim配置后续再说,敬请期待
by 吴尚奇 2014/05