Vim 基本命令

Vim 有一下几种基本模式: 常规模式、插入模式、可视模式、选择模式、命令行模式、Ex模式。
集中衍生模式: 操作符等待模式、插入普通模式、插入可视模式、插入选择模式、替换模式

普通模式
在普通模式中,用户可以执行一般的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。
Vim强大的编辑能力中很大部分是来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令”dd”删除当前行,但是第一个”d”的后面可以跟另外的移动命令来代替第二个”d”,比如用移动到下一行的”j”键就可以删除当前行和下一行。另外还可以指定命令重复次数,”2dd”(重复”dd”两次),和”dj”的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按”a”(append/追加)键或者”i”(insert/插入)键。
插入模式
在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。
在插入模式中,可以按ESC键回到普通模式。
可视模式
这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的”文本对象”也能和移动命令一样用在这个模式中。
选择模式
这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
命令行模式
在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(”:”键),搜索(”/”和”?”键)或者过滤命令(”!”键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
Ex模式
这和命令行模式比较相似,在使用”:visual”命令离开Ex模式前,可以一次执行多条命令。

衍生模式:

操作符等待模式
这个派生模式指普通模式中,执行一个操作命令后Vim等待一个”动作”来完成这个命令。Vim也支持在操作符等待模式中使用”文本对象”作为动作,包括”aw”一个单词(a word)、”as”一个句子(a sentence)、”ap”一个段落(a paragraph)等等。
比如,在普通模式下”d2as”删除当前和下一个句子。在可视模式下”apU”把当前段落所有字母大写。
插入普通模式
这个模式是在插入模式下按下ctrl-o键的时候进入。这个时候暂时进入普通模式,执行完一个命令之后,Vim返回插入模式
插入可视模式
这个模式是在插入模式下按下ctrl-o键并且开始一个可视选择的时候开始。在可视区域选择取消的时候,Vim返回插入模式。
插入选择模式
通常这个模式由插入模式下鼠标拖拽或者shift方向键来进入。当选择区域取消的时候,Vim返回插入模式。
替换模式
这是一个特殊的插入模式,在这个模式中可以做和插入模式一样的操作,但是每个输入的字符都会覆盖文本缓冲中已经存在的字符。在普通模式下按”R”键进入。
常见命令:
h、←                左移光标
j、↓                下移光标
k、↑                上移光标
l、→                右移光标

0、^、HOME          移动到光标所在列的行首
$、END              移动到光标所在列的行末
CTRL+u              向上半页
CTRL+b、PageUp      向上一页
CTRL+d              向下半页
CTRL+f、PageDown    向下一页
H                   移至窗口顶部
M                   移至窗口中间
L                   移至窗口末尾
G                   移至文件最后一列
gg                  移动到文件开头一列
nG                  移动到第 n 行 (等同于命令“:n”)
w                   前移一个单词
b                   后移一个单词
[{                  移到文件开始位置
]}                  移到文件结束位置

a                   插入至光标前
A                   插入至行首
i                   插入至光标后
I                   插入至行末
o                   在当后行后新插入一行
O                   在当前行后新插入一行
s                   删除字符并插入
S                   删除行并插入

r                   替换字符
R                   进入替换模式
cc                  修改当前行
cl                  修改当前字符
c$                  修改至行尾

fx                  右移至第一个 x 字符上
tx                  右移至第一个 x 字符前

x、DELETE            删除光标所在的字符
dw                   删除光标所在的单词
d$                   从光标处开始删除至行尾
dd                   删除当前行
dG                   删除当前行到最后一行
ndd                  连续删除 n 行

yw                   将光标所在单词拷入剪贴板
y$                   将光标至行尾的字符拷入剪贴板
Y、yy                将当前行拷入剪贴板
yny                  将当连续n行拷入剪贴板
p                    将剪贴板中的内容粘贴在光标后
P                    将剪贴板中的内容粘贴在光标前

CTRL-R               重做
u                    撤销,相当于Ctrl+z
U                    一次撤销一行的所有操作
Z                    推出
ZZ                   退出帮助,回到编辑模式 

/string              往前搜索 string【支持正则】
?string              往后搜索 string
*                    往前查找当前 word
#                    往后查找当前 word
/\            只匹配 word,不匹配 wordxx 等
%                    括号匹配
n                    查找下一个
N                    查找前一个

CTRL-v               可视化块模式

在常规模式下,按“:”键进入 命令模式,此时 Vim 窗口的最后一行会显示一个 “:” ,
命令执行完后,Vi自动回到命令模式。
:q                     不保存退出
:q!                    不保存强制性退出
:w                     保存编辑
:w filename            存入文件 filename 中
:w! filename           强制性存入文件 filename 中
:wq                    保存退出
:wq!                   强制保存然后退出
:args                  显示当前文件名
:help                  查看所有帮助
:help w                查看关于 w 的帮助

:set number            显示行号
:set nonumber          隐藏行号
:set rule              显示光标位置
:set ignorecase        搜索忽略大小写
:set noignorecase      搜索区分大小写
:ab str1 str2          如:ab abc abcdefg,
                       当输入 abc 然后输入空格, abc 自动变为 abcdefg
:new filename          打开或新建文件
:set ruler             打开光标的行列位置显示功能
:set shiftwidth=4      设置自动缩进格数
:set autoindent        打开自动缩进功能
:set paste             粘贴的时候关闭自动缩进
:set nopaste           粘贴的时候打开自动缩进

启动 Vim :
vim filename             打开或新建文件,并将光标置于第一行首
vim +n filename          打开文件,并将光标置于第n行首
vim + filename           打开文件,并将光标置于最后一行首
vim +/pattern filename   打开文件,并将光标置于第一个与pattern匹配的串处
vim -r filename          在上次正用vi编辑时发生系统崩溃,恢复filename
vim filename.filename:   打开多个文件,依次进行编辑
vim + /word filename     进入vi并且由文件的word这个字开始

参考:
http://zh.wikipedia.org/wiki/Vim

Post a Comment

Your email is never shared. Required fields are marked *

*
*