Vim

 

选项:

-b  打开二进制文件文件. 虽然不使用此参数也能打开二进制文件, 但是在保存的时候会有转换, 导致难以想象的问题。

 

命令:

:wq 保存并退出
:q! 不保存并退出, 同 ZQ
:x  退出,如果文件更改则保存
ZZ  退出,如果文件更改则保存(按住Shift,再按两次z)

h   左

j or (Ctrl + n)   下 (只有后者可以用在 Ctrl + n 的自动补齐功能里)

k or (Ctrl + p)  上 (只有后者可以用在 Ctrl + n 的自动补齐功能里)

l    右

 

(Ctrl + h/j/k/l/t/b)   在 split 窗口中向 上/下/左/右/顶部/底部 切换


i 在光标前插入 I 在行首插入
a 在光标后插入 A 在行末插入
o 在下一行插入 O 在上一行插入
x 删除当前字符 X 删除前一个字符

 


w    前进到下一单词首字母
W   前进到下一个单词首字母(忽略标点)
b    退回前一个单词首字母
B   退回前一个单词首字母(忽略标点)
e    前进到下一单词末字母
E    前进到下一单词末字母(忽略标点)
ge  退回到下一单词末字母

0   移动光标至行首
^   移动光标之行首字母
$   移动光标至行尾

(    移动到上一句首字母(每句一 '. ' 点号后加一个空格分隔). 

)    移动到下一句首字母.

{   移动到上一段落之前的一个空行(段落是以一个空行下面开始的一段文字). 

}   移动到下一段落之前的一个空行. 

[{   移动到上一层对应大括号的 { 处. 对于编程来说, 就是跳到嵌套的外层括号处.

]}   移动到上一层对应大括号的 } 处. 对于编程来说, 就是跳到嵌套的外层括号处.

[[   移动少上一顶层大括号 { 处. 对于编程来说, 就是跳到上一个函数定义的开始.

]]   移动到下一顶层大括号 } 处. 对于编程来说, 就是跳到下一个函数定义的开始.

xzz (x 是数字) 将第 x 行翻滚到屏幕中央, 并将光标设置在该行首.

gg  移动光标之文件开头
G   移动光标之文件最后一行首
H   移动光标到屏幕上的第一行
M   移动光标到屏幕的中间行
L   移动光标到屏幕上的最后一行
%   移动光标到匹配的括号上. ( ), { }, [ ], < >
(Ctrl+g) 获得光标当前行位置等信息
(Ctrl+f) 向下翻页
(Ctrl+b) 向上翻页
(Ctrl+d) 将光标向下移动半个屏幕
(Ctrl+u) 将光标向上移动半个屏幕
'.  移动光标至上次修改的行首
`.  移动光标至上次修改的点


fx(x是一个字符) 在当前行从光标处向右查找字符 x , 并将光标移至 x
Fx(x是一个字符) 在当前行从光标处向左查找字符 x , 并将光标移至 x
tx(x是一个字符) 在当前行从光标处向右查找字符 x , 并将光标移至 x 的左一个字符
Tx(x是一个字符) 在当前行从光标处向左查找字符 x , 并将光标移至 x 的右一个字符
;               在当前行沿着同样的方向查找字符 x , 并将光标移至 x
,               在当前行沿着相反的方向查找字符 x , 并将光标移至 x

>>  将当前行向右缩进一个单位
<<  将当前行向左缩进一个单位
=    自动缩进

(Ctrl + v)     标记块操作起点(什么是块操作? 答: 对一个 "方块" 的文字的操作.)
移动光标产生文字块
I                 在块首插入字符
A                在块尾插入字符

vi/va           对一行内的成对出现的符号所包含的内容进行选择
假设有如下字符串: int fun(char *f1(int a, int b), int c) ;
此时, 光标在绿色背景字符处, 则
命令              所选择的文字
 vi)                  int a, int b
v2i)          char *f1(int a, int b), int c
v3i)                      无
 va)                (int a, int b)
v2a)        (char *f1(int a, int b), int c)


/xxx 向下查找 xxx (支持正则表达式)
?xxx 向上查找 xxx (支持正则表达式)
*    向下查找光标所在单词(无论光标在单词什么位置)
#    向上查找光标所在单词(无论光标在单词什么位置)
g*   向上查找光标所在单词, 可以匹配在字串中的单词(无论光标在单词什么位置)
g#   向下查找光标所在单词, 可以匹配在字串中的单词(无论光标在单词什么位置)


:set tabstop=4    设置 Tab 键缩进为4个空格
:set shiftwidth=4 设置 >> 或 << 操作缩进为4个空格
:set ai           设置自动缩进


:split newfile(文件名)      横向切分或打开新窗口
:vsplit newfile(文件名)     纵向切分或打开新窗口
(Ctrl+w)-          水平方向减小窗口
(Ctrl+w)+         水平方向增加窗口  
(Ctrl+w)_         垂直方向最大化
(Ctrl+w)|          水平方向最大化  
:bn                  进入下一序号窗口
:bp                  进入前一序号窗口
:bd                  关闭当前窗口
:ls                   查看当前所有打开窗口序号等信息


26个具名寄存器 a-z
系统全局寄存器 +/* , 可用于与外界交换信息

qx(x是寄存器)           开始/结束记录宏
@x(x是寄存器)          运行宏

@@                        最后一次记录的宏

100@x(x是寄存器)    重复执行宏100次
"x(x是寄存器)           引用当前寄存器

:reg                        查看所有寄存器内容

    例如: 1) qa ... 开始将操作记录与 a 寄存器
             2) dd ... 删除单行
             3) q  ... 结束记录
             4) @a ... 执行寄存器 a 的内容
             5) "ap .. 将寄存器 a 中的内容粘贴出来

             6) "*p .. 从系统剪贴板中粘贴内容
           
:ab a aaa    设置缩写 a 为 aaa
:nmap <Fn> x 设置 normal 模式下 Fn(n为2~12的整数) 为操作 x 的快捷键

:imap <Fn> x  设置 insert 模式下 Fn(n为2~12的整数) 为操作 x 的快捷键
    例如: 1) nmap <F2> :w ... 将 F2 设置 normal 模式下为 :w 操作的快捷键


:%!xxd         将文本模式内容以二进制形式展示。(编辑二进制值才有效编辑最右边的文本没用

:%!xxd -r     将二进制形式的内容转换为文本模式。


 

:daw   删除当前光标所在单词(无论光标在单词的什么位置)
:yaw   复制当前光标所在单词(无论光标在单词的什么位置)
:xp     快速调换两个字母
:cw    替换当前字符后到单词结尾(不包括但此后的空格)

:dw    删除当前字符到单词结尾(包括单词后的空格)

:de    删除当前字符到单词结尾(包括但此后的空格)

4h   向左移动4个位置
4j    向下移动4个位置
4k   向上移动4个位置
4l    向右移动4个位置

参数:

  -b: 打开二进制文件。

 

 

2013/5/10 补充

进阶:

编辑状态中 (Ctrl + p/n)     自动补全. 如果你定义过该变量或者函数, 就会进行自动补全.

编辑状态中 (Ctrl + r) =     输入数学表达式, 将计算的结果作为输入.

gf     跳转到光标所在文件名的文件中.

ga    显示光标所在字符的内码

:copen    打开 quickfix window

:cp      跳转到上一条提示信息

:cn      下一条

:cclose    关闭 quickfix window



 


另外在附上一张更详细的:


最后:

  User 的 配置文件一般放是 $HOME/.vimrc
   
   
参考 : http://www.cnblogs.com/facingwaller/archive/2011/02/26/1965894.html

         http://www.cnblogs.com/jianyungsun/archive/2010/12/07/1899347.html

         http://coolshell.cn/articles/5426.html

         http://www.ibm.com/developerworks/cn/linux/l-tip-vim1/index.html

posted @ 2011-05-11 20:13  walfud  阅读(631)  评论(2编辑  收藏  举报