Vim 快捷键_麦克的空间

来源:百度文库 编辑:神马文学网 时间:2024/06/02 09:53:09
i命令模式中可用的移动键:
h---将光标向左移一个字符
j---将光标向下移一个字符
k---将光标向上移一个字符
l---将光标向右移一个字符
w---将光标向前移一个单词
b---将光标向后移一个单词
e---将光标移到下一个单词之后
0---将光标移到行首
$---将光标移到行末
)---将光标移到下一句句首
(---将光标移到上一句句首
}---将光标移到下一段开始处
{---将光标移到下一段开始处
G---将光标移到当前文档的底部
^---将光标移到行内非空格的第一个字符
H---将光标移到屏幕上第一行
L---将光标移到屏幕上最后一行


在vi中滚动屏幕:
a然后按回车----将光标所在的那一行移至屏幕顶部
z然后按"-"---将光标所在的那一行移至屏幕底部
z然后按"."---将光标所在的那一行移至屏幕中部
Ctrl+u------向上滚动半屏
Ctrl+d------向下滚动半屏
Ctrl+f------向前滚动全屏
Ctrl+b------向后滚动全屏
Ctrl+e------向下滚动一行
Ctrl+y------向上滚动一行


vi的文本编辑命令:
D------从光标定位的行末删除文本
dd------行删除光标定位的当前行
ndd-----n代表即将删除的行数。例如5dd命令不仅会把当前行删除,还会把紧随其后的4行也删除
rc------c代表字符。光标下方的字符将被替换为r后面的字符
R------R后键入的文本将改写当前文本,从光标所在位置开始,一直到按下Escape返回命令模式为止
S------删除当前行,并开始在当前的空白行插入文本
x------删除光标下方的字符,并将字符右移填空
X------删除光标前的字符,并移动字符,令光标下方的字符来填空
~------更改光标下方的字母的大小写
J------将当前行和前一行连接起来,并删除因此而来的空行


vi中的文件操作:
ZZ------保存对当前文件的更改,然后退出vi
:wq-----保存对当前文件的更改,然后退出vi(和ZZ一样)
:w------保存对当前文件的更改
:w!-----保存对当前文件的更改,如果有同名文件存在的话,就改写他
:q------退出vi。如果有未保存的更改,vi将发出抱怨,并"拒绝"退出
:q!-----退出vi,即使还有尚未保存的更改。所有未保存的更改将被丢失
:e filename-把指定文件载入vi进行编辑。如果指定文件不存在,将创建一个新文件
:e!-----丢失所有更改,并从硬盘中重载已保存的文件


vi中的查找和替换命令
/pattern--------pattern(样式)指代的是要查找的内容。vi将在文件中向前查找与指定内容匹配的第一样式
/-----------重复上一次查找,在文件中查找下一个匹配样式
pattern--------pattern(样式)指代的是要查找的内容。vi将在文件中向后查找与指定内容匹配的第一样式
-----------重复上一次查找,在文件中查找与上一次查找内容匹配的样式
%-----------把当前光标移至匹配的圆括号或方括号。对程序员来说,该命令非常有用
:s/pattern1/pattern2--用pattern2替换当前行中与pattern1匹配的每个内容
:%s/pattern1/pattern2--用pattern2替换整个文件中与pattern1匹配的每个内容

在vi中复制文本

命令            复制操作
yy            将当前行的内容放入临时缓冲区
nyy            将n行的内容放入临时缓冲区
p            将临时缓冲区中的文本放入光标后
P            将临时缓冲区中的文本放入光标前
"(a-z)nyy        复制n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行
"(a-z)ndd        删除n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行
"(a-z)p            将名字为圆括号的可命名缓冲区的内容放入当前行后
"(a-z)P            将名字为圆括号的可命名缓冲区的内容放入当前行前


在vi中撤消与重复

命令            撤消操作
u            撤消最后一次修改
U            撤消当前行的所有修改
.            重复最后一次修改
,            以相反的方向重复前面的f、F、t或T查找命令
;            重复前面的f、F、t或T查找命令
"np            取回最后第n次的删除(缓冲区中存有一定次数的删除内容,一般为9)
n            重复前面的/或?查找命令
N            以相反方向重复前面的/或?命令

vi中的宏与缩写
(避免使用控制键和符号,不要使用字符K、V、g、q、v、*、=和功能键)

选项            作用
:map key command_seq    定义一个键来运行command_seq,如:map e ea,无论什么时候都可以e移到一个字的末尾来追加文本
:map            在状态行显示所有已定义的宏
:umap key        删除该键的宏
:ab string1 string2    定义一个缩写,使得当插入string1时,用string2替换string1。当要插入文本时,键入string1然后按Esc键,系统就插入了string2
:ab            显示所有缩写
:una string        取消string的缩写


在vi中缩进文本

选项            作用
^i(ctrl+i)或tab        插入文本时,插入移动的宽度,移动宽度是事先定义好的
:set ai            打开自动缩进
:set sw=n        将移动宽度设置为n个字符
n<<            使n行都向左移动一个宽度
n>>            使n行都向右移动一个宽度,例如3>>就将接下来的三行每行都向右移动一个移动宽度

split:分割一个窗口
:split file.c :为另一个文件file.c分隔窗口
:nsplit file.c: 为另一个文件file.c分隔窗口,并指定其行数
CTRL+W在窗口中切换
:close:关闭当前窗口
v:进入visual 模式
【ESC】退出