Vim操作技巧第一期:基本的操作技巧
最近一直在Linux下开发程序,虽然是跑的虚拟机但是编码还是在windows下编码,然后再到Linux编译。发觉这样的效率比较低,为什么不在Linux下编码呢?呵呵,原因是不太习惯Linux的环境,不过说回来听说Linux下的两大工具vi和emacs功能超强,所以也决定下决心学学这两个工具,这里就列一些最近学的关于vi的一些操作:
首先,vi有三种模式,正常模式(命令模式),编辑模式(插入模式),可视模式。具体的网上也有很多了,怎么操作,简单的就是
打开vi,进入的是正常模式(这时候敲键盘是输入不进字符的,除非按i,a,c,o等),按i,或a就进入了插入模式(这时候就可以输入字符了,注意我下面说的命令都是在命令模式下操作的),再按<ESC>或CTRL-C就回到了命令模式,再按v就进入了可视模式,这是可以进行块选,复制粘贴等操作。废话少说:下面就是最近学习的命令(声明这里用ESC,CTRL, Backspace,Enter,Space都为键盘上的键,不是字符)
CTRL-H, LEFT, Backspace
向左移动光标
Space, right
向右移动光标
0
移动到一行的第一个字符
^
移动到行的第一个非空字符
$
移动到行的最后一个字符
:f
列出当前文件的全路径
[num] -
向上移动num行,如:5 -,向上移动5行
[num] +
向下移动num行,如上
[num] G
从文件头移动到num行
[num] %
移动到文件的num%位置
[num] gk
从当前行向上移动num行
[num] gj
从当前行向下移动num行
[num] w
向后移动num个字
[num] b
向前移动num个字
ge
移动到前一个字的尾部
}
移动到下一个空行
{
移动到上一个空行
[[
移动到文件头
]]
移动到文件尾
[{
匹配到上一个{
]}
匹配到下一个}
[*
前一个/*
]*
下一个*/
/
向后搜索
?
向前搜索
*
向下匹配当前字符
#
向上匹配当前字符
gd
goto 本地声明
gD
goto 全局声明
``
移动到刚才跳转前的位置
H
当前屏幕的头
M
当前屏幕的中间
L
当前屏幕的底端
CTRL-C
跟ESC一样
:r!
将执行的命令追加到当前文档
[num] x
删除后面num个字符
[num] X
删除前面num个字符
R
修改模式
~
转换当前字符为大写
v-u
转换当前字符为小写
g~
转换字母大小写变化
>>
向后缩进
<<
向前缩进
CTRL-D
向下滚动半屏
CTRL-U
向上滚动半屏
CTRL-G
显示当前文件和所在的行
:+ [num]
移动到光标所在行的下num行
:e file
编辑一个文件
:pwd
显示当前路径
:cd path
转到路径path
:enew
编辑一个新的未命名的buffer
:cd-
回到当前路径的上一路径
:f filename
修改文件名到新的filename
CTRL-W ]
拆分窗体,并转到定义
CTRL-W f
拆分窗体,并转到文件
CTRL-W o
使得当前窗体最大化
CTRL-W j
移动到上一buffer窗口
CTRL-W k
移动到下一buffer窗口
zf <ENTER>
折叠当前区块
zd
删除当前折叠
zc
关闭当前折叠
zo
打开当前折叠
由于vi的命令很多,这里就列举了能帮助你完成基本编辑任务的操作,呵呵,至少给新手以一个感性的认识,我也是新手^_^!