[Linux] VIM 常用快捷键

标签
    * :tabnew 打开新标签页.
    * :tabe <file> 在新标签页打开文件.
    * <ctrl> + PageUp, PageDown 切换标签页.
    * :tabnext, tabprev 切换标签页,Putty 下只能用这个.
文件
    * :e <file> 打开文件.
    * :enew 新文件.
    * :w 保存.
    * :wa 全部保存.
    * :w <file> 另存为.
    * :wq 保存并退出.
    * :x 保存并退出.
    * :q 退出.
    * :qa 全部退出.
    * :q! 强制退出.
文本
    * esc 切换命令模式 (距离太遥远了,用 Ctrl+C 代替吧).
    * i 插入模式.
    * I 在当前行开头插入.
    * R 替换模式.
    * a 在光标后插入.
    * A 在当前行尾部插入.
    * v Visual 模式按字符选择.
    * V Visual 模式按行选择.
光标
    * h 左移光标.
    * j 下移光标.
    * k 上移光标.
    * l 右移光标.

fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。

tx:和上面的命令类似,但是是移动到 x 的左边一个位置。

Fx:和 fx 类似,不过是往回找。

w:光标往前移动一个词。

b:光标往后移动一个词。

0:移动光标到当前行首。

^:移动光标到当前行的第一个字母位置。

$:移动光标到行尾。

):移动光标到下一个句子。

( :移动光标到上一个句子。

 

    * gg 将光标移到文件头部.
    * G 将光标移到文件尾部.
    * #G 移动光标到指定行#. 例如: 5G
编辑
    * u 撤销.
    * . 重做.
    * dd 删除当前行.
    * #dd 删除几行. 例如: 3dd
    * d^ 删除到行首.
    * d$ 删除到行尾.
    * :#,&d 删除 # 到 & 行. 例如: 3,5d

  * Ctrl + w 删除光标之前的词

  * Ctrl + u 删除当前行光标左边的所有内容

    * yy 拷贝当前行到剪贴板.
    * #yy 拷贝 # 行到剪贴板.
    * y^ 从文件头开始拷贝.
    * y$ 拷贝到文件尾部.
    * :#,&y 拷贝 # 到 & 行. 例如: 4,5y
    * p 在光标后粘贴.
    * P 粘贴到光标前.
    * >> 增大缩进.
    * << 减少缩进.
    * == 自动缩进.
查找替换
    * /# 查找 #. 例如: /printf
    * ?# 反向查找 #.
    * n 查找下一个.
    * N 反向查找下一个.
    * :s/old/new/g 当前行无提示替换.
    * :%s/old/new/g 无提示替换.
    * :%s/old/new/gc 确认替换.
    * :#,&s/old/new/g 从 # 到 & 行无提示替换.
书签跳转
    * :marks 查看所有书签, 输入 ":<num>" 可跳转.
    * m<name> 定义书签, 如 ma 在当前行定义名为 a 的书签.
    * `<name> 跳转到某书签, "`" 为键盘 Tab 上一行第一键.
    * :jumps 查看所有跳转记录, 输入 ":<num>" 可跳转.
    * <ctrl> + o 返回上一次跳转处.
    * <ctrl> + i 和 <ctrl> + o 反向转处.
Ctags
    * :! ctags -R . 生成 ctags 文件.
    * <ctrl> + ] 查看函数定义.
    * <ctrl> + T 返回.
    * shift + k 查看函数 man 帮助信息.
Code
    * gg=G 源码格式化

窗口操作

:split <filename>  按拆分模式打开文件,默认为上下拆分
:vsplit <filename> 左右拆分
 Ctrl-w w 切换活动窗口
 Ctrl-w Ctrl-w  切换活动窗口
 Ctrl-w h/j/k/l 切换活动窗口为 左/上/下/右 边的窗口

整篇文章大写转化为小写
    打开文件后,无须进入命令行模式。
    键入:ggguG
    解释一下:
    ggguG分作三段gg gu G
    gg=光标到文件第一个字符
    gu=把选定范围全部小写
    G=到文件结束

整篇文章小写转化为大写
    打开文件后,无须进入命令行模式。
    键入:gggUG
    解释一下:gggUG分作三段gg gU G
    gg=光标到文件第一个字符
    gU=把选定范围全部大写
    G=到文件结束

只转化某个单词
    guw 、gue、gUw、gUe
    这样,光标后面的单词便会进行大小写转换
    想转换5个单词的命令如下:
    gu5w、gu5e、gU5w、gU5e

转换几行的大小写
    将光标定位到想转换的行上,键入:1gU
    从光标所在行往下一行都进行小写到大写的转换
    10gU,则进行11行小写到大写的转换
    以此类推,就出现其他的大小写转换命令
    gU0 :从光标所在位置到行首,都变为大写
    gU$ :从光标所在位置到行尾,都变为大写
    gUG :从光标所在位置到文章最后一个字符,都变为大写
    gU1G :从光标所在位置到文章第一个字符,都变为大写

其他
    * ! <command> 执行命令.
    * :r <file> 插入文件内容.
    * :r !<command> 插入命令输出结果.
    * :cd <path> 修改默认工作目录.

Ctrl+Z 把当前环境放入后台

bg - 列出已停止或后台的作业

fg - 将最近的作业带到前台

fg n - 将作业n带到前台

如果不小心按了Ctrl + s,vim 好象死掉了一样,试试下面这个吧~_~!

Crtl + s 停止输入(这两个好象是bash的原因)

Crtl + q 恢复输入

 

去掉MS下文件的^M

:%s/^M//g # 去掉所有的^M (注意:“^M”要使用“CTRL-V CTRL-M”生成)

 

改变窗口大小
输入次序: Ctrl-w 行数 +
Ctrl-w+ 把当前窗口高度增加”行数”行(如不指定行数,默认为1)
Ctrl-w- 把当前窗口高度减少”行数”行(如不指定行数,默认为1)
Ctrl-w= 让所有窗口一样高
Ctrl-w_ 把当前窗口的高度设为”行数“,如不指定则把它最大化。

 

从VIM复制到系统剪贴板clipboard

:!pbcopy

:[n,n] !pbcopy

:[n,n] w !pbcopy

加入.vimrc配置

vmap <C-x> :!pbcopy<CR>   

vmap <C-c> :w !pbcopy<CR><CR>

 

VIM忽略语法错误

配置文件中加入:

let g:syntastic_quiet_messages = {'regex': ['line too long', 'colon', 'too many blank lines'] }

posted @ 2010-07-28 09:44  ABeen  阅读(2297)  评论(0编辑  收藏  举报