Linux Vim编辑器常用快捷键

368 阅读3分钟

文章来源:www.huaweicloud.com/articles/bl…

原文链接:blog.csdn.net/CSDN1013/ar…

一般模式可用的按钮说明

光标移动、复制粘贴、查找替换等
h或向左箭头光标向左移动一个字符
j或向下箭头光标向下移动一个字符
k或向上箭头光标向上移动一个字符
l或向右箭头光标向右移动一个字符
[Ctrl]+[f]屏幕向下移动一页,相当于page down按键
[Ctrl]+[b]屏幕向下移动一页,相当于page up按键
[Ctrl]+[d]屏幕向下移动半页
[Ctrl]+[u]屏幕向上移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
n"n"表示具体数字,如10。按下数字后再按下空格键,光标会向右移动这一行的n格字符。
0或功能键移动到这一行的最前面字符处
$或功能键移动到这一行的最后面字符处
H光标移动到这个屏幕最上方那一行的第一个字符
M光标移动到这个屏幕中央那一行的第一个字符
L光标移动到这个屏幕最下方那一行的第一个字符
G移动到这个文件的最后一行
nG移动到这个文件的第n行。 20G
gg移动到这个文件的第一行
n[Enter]光标向下移动n行

如果想进行多次移动,例如向下移动30行,可以使用30j或30↓的组合按键。其他移动方向的组合键类似|


查找与替换
/word向下寻找一个名称为word的字符串。例如/mark
?word向上寻找一个名称为word的字符串。例如/mark
n重复前一个查找的操作。如输入/mark后,再按下n,表示继续向下查找“mark”这个字符串
N反向进行前一个查找操作
:n1,n2s/word1/word2/g在第n1和n2行之间寻找word1,并将word1替换为word2
:1,$s/word1/word2/g在第1行和最后一行之间寻找word1,并将word1替换为word2
:1,$s/word1/word2/gc在第1行和最后一行之间寻找word1,并将word1替换为word2。且在替换前提示用户确认(confirm)是否需要替换

删除、复制与粘贴
x,X在一行字中,x为向后删除一个字符,X为向前删除一个字符
nx连续向后删除n个字符
dd删除光标所在的那一整行
ndd删除光标所在的向下n行
d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$删除从光标所在处到该的最后一个字符
d0删除从光标所在处到该行的最前面一个字符
c重复删除多个数据,例如向下删除10行 【10cj】
yy复制光标所在的哪一行
nyy复制光标所在的向下n行
y1G复制光标所在行到第一行的数据
yG复制光标所在行到最后一行的数据
y0复制光标所在的那个字符到改行行首的所有数据
y$复制光标所在的那个字符到改行行尾的所有数据
p,Pp为将已复制的数据在光标下一行粘贴,P为粘贴在光标上一行。例如,目前光标在第20行,且已经复制了10行数据。则按下p后,那10行数据会粘贴在原本的20行之后,即由21行开始粘贴。但是如果按下P,那么原本的的第20行会被变成30行
J将光标所在行与下一行的数据合成同一行
u复原上一个操作
[Ctrl]+r重做上一个操作
.这是一个小数点。 重复前一个操作的意思。

   

一般模式-->编辑模式的可用按钮说明

i,I进入插入模式(Insert mode)i为从目前光标所在处插入,I为目前所在行的第一个非空格处开始插入
a, A进入插入模式(Insert mode)a为从目前光标所在的下一字符处插入,A为目前所在行的最后一个字符处开始插入
o, O进入插入模式(Insert mode)o为从目前光标所在的下一行处插入新的一行,O为目前所在行的上一个行处插入新一行
r, RRepalce mode r只会提华纳光标所在的那一个字符一次;R会一直替换光标所在的问题,直到按下【Esc】为止
【Esc】退出编辑模式,回到一般模式中

复制与粘贴

全部删除按esc键后,先按gg(到达顶部),然后dG
全部复制按esc键后,先按gg,然后ggyG
全选高亮显示按esc键后,先按gg,然后ggvG或者ggVG
单行复制按esc键后, 然后yy
单行删除按esc键后, 然后dd
粘贴按esc键后, 然后p
复制到粘贴板全选高亮显示之后,ctrl+shift+c,

vim只能粘贴50行的问题: 在当前用户主目录编辑~/.vimrc(如果不存在,新建这个文件),添加一行 :set viminfo='1000,<500

至于为什么要输入输入'1000,这个其实不重要,最主要的是输入<500,它是设置寄存器保存的行数的,即最大值为 500。