1. 光标移动
H:将光标移动到屏幕的顶行
nH:将光标移动到屏幕顶行下的第 n
M:将光标移动到屏幕的中间
L:将光标移动到屏幕的底行
2.屏幕移动
z- :将当前行置为屏幕的底行
3.打开快速窗口
:cw
4.标记
m(a-z) 用一个字母来标记当前位置,如用 mz 表示标记 z
'(a-z) 将光标移动到指定的标记,如用 'z 表示移动到 z
5.buffet
删除minibufexpl中某一个buffet
将光标移动到最底部窗口,按d 回车即可删除.
强制切换bufer:
next! -> 强制编辑下个文件,这里指如果更改了第一个文件 (force to next file in buffer if current buffer changed)
6.找到变量定义的地方
gd
跳回 ctrl + o
7.vim插入1..100
:r !seq 1 10
8. 10 -> 15
In normal mode, typing Ctrl-A will increment the next number, and typing Ctrl-X will decrement the next number. The number can be at the cursor, or to the right of the cursor (on the same line). These are the defaults for Vim, although some scripts remap these keys to perform other functions.
These keys work with a count. For example, pressing 5 then Ctrl-A will increment the following number five times (add 5).
9.宏的用法
qa
Y
p
Ctrl-A
q
Now type 15@a to perform the macro 15 times. You will see:
101 This is an item.
102 This is an item.
103 This is an item.
104 This is an item.
and so on
10.全选
ggvG
11.上次选择的可视化区域
gV
12.跳转到鼠标下的文件
gf
13.大小写转换
【guu 】 – 把一行的文字变成全小写。或是【Vu】
【gUU】 – 把一行的文件变成全大写。或是【VU】
【v】键进入选择模式,然后移动光标选择你要的文本,按【u】转小写,按【U】转大写
【ga】 – 查看光标处字符的ascii码
【g8】 – 查看光标处字符的utf-8编码
~ 大小写切换
14. 全局 (global)
这个不知道怎么翻译,反正vim是叫做global,可以对搜索到的东西执行一些vim的命令。我也是2-3个星期前因为读log中一些特殊的东 西,才学会用的。 (find the match pater and execute a command)
global具体自行方法是 g/pattern/command
:g/abc/p -> 查找并显示出只有abc的行 (only print line with “abc” )
:g/abc/d -> 删除所有有abc的行 (delete all line with “abc”)
:v/abc/d -> 这个会把凡是不是行里没有abc的都删掉 (delete all line without “abc”)
15.跳转到第N行
nG
:3
16.跳转记录
:ju 查看所有跳转记录,
:jumps 查看所有跳转记录, 输入 “:
*
*
17.缩进
【=】 - 缩进当前行 (和上面不一样的是,它会对齐缩进)
【=%】 – 把光标位置移到语句块的括号上,然后按=%,缩进整个语句块(%是括号匹配)
【G=gg】 或是 【gg=G】 - 缩进整个文件(G是到文件结尾,gg是到文件开头)
18.如何调整vim窗口大小?
输入次序: Ctrl-w 行数 +
Ctrl-w+ 把当前窗口高度增加”行数”行(如不指定行数,默认为1)Ctrl-w- 把当前窗口高度减少”行数”行(如不指定行数,默认为1)Ctrl-w= 让所有窗口一样高Ctrl-w_ 把当前窗口的高度设为”行数“,如不指定则把它最大化。
也可以用 :set mouse=a 用鼠标来拉
19.vim重复上一行内容
vim 中一很让人喜欢的功能之一就是
按 Insert 模式下,
20.我复制一段代码,里面有// 只有一行,但是复制到vim中就下面全部都有//了。我要取消这个功能
set formatoptions+=c 搞定
原因:
选项 formatoptions 确定了跟文本格式化有关的基本选项,常用的数值有:
上面提到的注释,可以是 C/C++ 中的“//”和“/*”,也可以是邮件中引用原文使用的“>”等字符(具体由 comments
选项控制;参见“:help 'comments'”)。Vim
在遇到这些字符时,能够相当智能地进行处理,足以完成日常编辑源代码和邮件的需要。在使用一些处理纯文本不够强大的邮件客户端时,我通常使用 Vim
编辑邮件(特别是英文邮件),然后把结果贴回到邮件编辑窗口中进行发送。
Vim 中 formatoptions 的缺省值是“tcq”,一般我会在 .vimrc 文件中加入一行“set formatoptions+=mM”来确保 Vim 能在中文字符之间折行而不要求空格的存在,并且在大部分情况下可以正确地处理中文重新格式化。
放弃修改,重新载入文件
:e filename |
打开文件filename进行编辑[相当于退出当前的并打开另一个文件]? |
:e! |
放弃修改文件内容,重新载入该文件编辑 |
:e |
重新载入【类似刷新】 |
map :call CompileRunGcc()
func! CompileRunGcc()
ecec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'sh'
exec "!bash %"
elseif &filetype == 'php'
exec "!phpfmt -p=%" #如果是php代码,格式化
elseif &filetype == 'python'
exec "!python %"
elseif &filetype == 'mkd'
exec "!~/.vim/markdown.pl % > %.html &"
endif
endfunc