vim 快捷键技巧总结

vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。

?

vi有3个模式:插入模式、命令模式、低行模式

1)插入模式:在此模式下可以输入字符,按ESC将回到命令模式。

2)命令模式:可以移动光标、删除字符等。

3)低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi -o/O filename1 filename2 ... :打开多个文件,依次进行编辑

?

vi 关闭文件

:w ? ? ? //保存文件
:w vpser.net //保存至vpser.net文件
:q ? ? ? ? ?//退出编辑器,如果文件已修改请使用下面的命令
:q! ? ? ? ?//退出编辑器,且不保存
:wq ? ? ? ? //退出编辑器,且保存文件

?

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

n+ ? ? ? ?//向下跳n行
n- ? ? ? ? //向上跳n行
nG ? ? ? ?//跳到行号为n的行
G ? ? ? ? ? //跳至文件的底部

?

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

?

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

?

复制、粘贴

yy ? ?//将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy ? //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw ? ?//复制从光标开始到词尾的字符。
nyw ? //复制从光标开始的n个单词。
y^ ? ? ?//复制从光标到行首的内容。??
y$ ? ? ?//复制从光标到行尾的内容。
p ? ? ? ?//粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P ? ? ? ?//粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

?

文本替换

:s/old/new ? ? ?//用new替换行中首次出现的old
:s/old/new/g ? ? ? ??//用new替换行中所有的old
:n,m?s/old/new/g ? ? //用new替换从n到m行里所有的old
:%s/old/new/g ? ? ?//用new替换当前文件里所有的old

简单替换表达式
? ? ? ??:%s/four/4/g
“%” 范围前缀表示在所有行中执行替换,最后的 “g” 标记表示替换行中的所有匹配点,如果仅仅对当前行进行操作,那么只要去掉%即可

如果你有一个像 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用?“<”来指定匹配单词开头:

? ? ? ???:%s/<four/4/g
显然,这样在处理 “fourty” 的时候还是会出错。用?“>”?来解决这个问题:
? ? ? ? :%s/<four>/4/g
如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:
? ? ? ? :%s/<four>/4/gc

单词精确匹配替换

sed -e "s/\<old\>/new/g" ?file

?

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

x ? ? ? ? //删除当前字符
nx ? ? ? ? //删除从光标开始的n个字符
dd ? ? ? //删除当前行
ndd ? ? //向下删除当前行在内的n行
u ? ? ? ?//撤销上一步操作
U ? ? ? //撤销对当前行的所有操作

?

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

?

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“/”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

?

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

?

寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

时间: 2024-08-10 02:09:16

vim 快捷键技巧总结的相关文章

VIM常用技巧总结

其实早就想整这篇总结了,一直没有时间写,鉴于李老板的强烈要求,今天更新上来. VIM作为linux环境下一个非常强大的工具,其实是非常实用了,尤其是对于代码量庞大的项目来讲,简直就是福音.无法想象在一个集成IDE里面添加几万甚至百万个文件个文件时,你还能指望IDE能够快速的进行代码的快速浏览跳转,但是VIM就可以轻松做到. 在默认安装的VIM中,其实没有带多少插件,但其自带的基本功能,也能满足普通的文本编辑需求.但是如果是经常使用VIM来查看阅读代码,那必须对默认的VIM进行一些强化,才能使其用

Vim快捷键

Vim快捷键 普通模式 [行间跳转] gg 游标移动到到第一行 G 游标移动到最后一行 nG 游标移动到第 n 行 Ctrl + o 快速回到上一次(跳转前)光标所在位置 Shift+zz 普通模式下输入即可保存退出vim [行内跳转] w 到下一个单词的开头 e 到下一个单词的结尾 b 到前一个单词的开头 ge 到前一个单词的结尾 0 或 ^ 光标跳转到行头 $ 光标跳转到行尾 f 字母 向后搜索<字母>并跳转到第一个匹配的位置 F字母 向前搜索<字母>并跳转到第一个匹配的位置

vim 使用技巧

vi vim 使用技巧 本文由网络资源收集整理而成. 说明:以下的例子中 xxx 表示在命令模式下输入 xxx 并回车以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车小括号中的命令表示相关命令.在编辑模式或可视模式下输入的命令会另外注明. 1. 查找 /xxx(?xxx)       表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示                   向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.                 

[No00004F]史上最全Vim快捷键键位图(入门到进阶)

史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版        下面这个键位图应该是大家最常看见的经典版了. 对应的简体中文版. 其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图. 1 2 3 4 5 6 7 入门版        基本操作的入门版.进阶版        增强版        下图是一个更新时间较新的现代版,含有的信息也更

vim快捷键大礼包(一)

vim快捷键大礼包(一) 移动光标 h--左移 l(小写字母L)--右移 k--上移 j--下移 光标移动到文件头或尾 gg--移动到文件头 G--移动到文件尾 删除字母 x--删除光标位置的字母 nx--删除光标位置的字母及之后的n-1个字母 删除整行(剪切) yy--删除光标所在的行 ndd--删除光标所在的行及之后的n-1行 dG--从光标所在的行删除到行尾 :n1,n2d--删除n1到n2行 复制 yy--复制光标所在的行 nyy--复制光标所在的行及之后的n-1行 粘贴 p--粘贴光标

(转载)两篇很牛的vim使用技巧

读本文之前请注意: 1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了. 2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程. 3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人.熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽. 4. 本文由本人搜集整理,转载请注明

《Vim实用技巧》笔记

Vim实用技巧 Table of Contents 1. Vim决问题的方式 2. 普通模式 3. 插入模式 4. 可视模式 5. 命令行模式 5.1. 操作文本的Ex命令 5.2. range服务说明 5.3. 补全 5.4. 命令行窗口–使用vim的编辑能力编辑Ex命令 5.5. 执行外部命令 6. 管理多个文件 6.1. 缓冲区列表管理 6.2. 参数列表 6.3. 窗口操作 6.4. 标签页操作 7. 打开及保存文件 7.1. 打开文件 7.2. 使用find查找文件 7.3. 使用ne

vim快捷键与插件

vim快捷键与插件 代码补全 使用vim内置补全,快捷键Ctrl-n或Ctrl-p. 自动补全插件AutoComplPop. 注释 NERDComment插件 常用命令: <Leader>cc 在可视模式下,对选中进行注释,<Leader>可配置,默认为反斜杠(\). <Leader>c<space> 取消选中区域的注释. :help nerdcomment 查看帮助 缩进 插入模式 Ctrl-T增加缩进,Ctrl-D减小缩进. 命令模式 >>

转载: vim使用技巧

两篇很牛的vim使用技巧   来源: ChinaUnix博客 日期: 2009.07.06 10:18 (共有条评论) 我要评论   读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了.2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程.3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用v