vim快捷键

参考:鸟哥的linux私房菜

移动光标的方法 注释
h 或 向左方向键(←) 光标向左移动一个字符
j 或 向下方向键(↓) 光标向下移动一个字符
k 或 向上方向键(↑) 光标向上移动一个字符
l 或 向右方向键(→) 光标向右移动一个字符
如果你将右手放到键盘上的话,你会发现
hjkl是排列在一起的,因此可以使用这四个
按钮来移动光标。如果想要进行多次移动
例如乡下移动30行,可以使用"30j"或"30↓"
的组合键,亦即加上想要进行的次数(数字)
然后按下动作即可
[ctrl/control] + [f] 屏幕"向下"移动一页,相当于[Page Down]按键(常用)
[ctrl/control] + [b] 屏幕"向上"移动一页,相当于[Page Up]按键(常用)
[ctrl/control] + [d] 屏幕"向下"移动半页
[ctrl/control] + [u] 屏幕"向上"移动半页
+ 光标移动到非空白字符的下一行
- 光标移动到非空白字符的上一行
n[space] n表示数字,例如10.按下数字之后在按空白键,光标会向右移动这一行的n哥字符。例如20[space],则光标会向后面移动20个字符距离。
0 或 功能键[home] 这是数字"0":移动到这里行的最前面字符出(常用)
$ 或 功能键[end] 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符(mid)
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个文件的最后一行(常用)
nG n为数字。移动到这个文件的第n行。例如10G则会移动到这个文件的第10行(可配合 :set nu 显示行号)
gg 移动到文件的第一行,相当于1G(常用)
n[Enter] n为数字。光标向下移动n行(常用)
搜寻于取代 备注
/word 向光标之下寻找一个名为word的字符串。例如要在文件内搜寻hello这个字符串,就输入/hello 即可!(常用)
?word 光标向上寻找一个字符串名称为word的字符串。
n 搜寻下一处
N 搜寻上一出
使用/word配合n及N是非常有帮助的。可以让你重复的找到一些你搜寻的关键字!
:n1,n2s/word1/word2/g n1与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串取代为word2.举例来说:在100到200行之间搜寻hello并替换为hi
则":100,200s/hello/hi/g" (常用)
:n1,$s/word1/word2/g 从第一行到最后一行寻找word1,并替换为word2(常用)
:n1,$s/word1/word2/gc 从第一行到最后一行寻找word1,并将其替换为word2,并且取代前显示提示字符给使用者确认(confirm)是否需要取代!(常用)
删除、复制与粘贴
x,X 在一行字当中,x为向后删除一个字符(相当于[del]键),X为向前删除一个字符(相当于[backspace]即退格键)(常用)
10x/10X n为数字,连续向后/向前删除n个字符。举例来说,我要连续删除画
dd 删除光标所在的一整行(常用)
ndd n为数字。删除光标表所在的向下n行,例如20dd则是删除20行(常用)
d1G 删除光标所在到第一行所有的数据
dG 删除光标所在到最后一行的所有数据
d$ 删除光标所在处,到该行的最后一个字符
d0/d^ “0”是数字0,删除光标所在处,到该行的最前面的一个字符
yy 复制光标所在的那一行(常用)
nyy n是数字,复制光标坐在的向下n行,例如20yy则是复制20行(常用)
y1G 复制光标坐在到第一行的所有数据
yG 复制光标所在到最后一行的所有数据
y0/y^ 复制光标坐在行,光标到行首的所有数据
y$ 复制光标所在行,光标到行尾的所有数据
p,P p为将已复制的数据在光标下一行粘贴,P则为在光标上一行粘贴
J 将光标所在列与写一列的数据结合成同一列
c 重复删除多个数据,例如向下删除10列,"10cj"
u 复原前一个动作(撤销)(常用)
[Ctrl/control]+r 重复上一个动作(常用)
这个u与[Ctrl/control]+r是很常用的指令!一个是复原,另一个则是重做一次~利用这两个功能键,效率杠杠的
. 不用怀疑这就是小数点,意思是重复前一个动作,如果你想重复删除,重复粘贴,按下小数点就好了
命令行界面的存储、离开等指定
:w 保存(常用)
:w! 强制保存
:q 退出(常用)
:q! 强制退出
注意“!”在编辑器中常常有强制的意思
:wq 保存并退出
ZZ 大写的Z。若文件没有改动,则不存储离开,若文件改动,则保存退出
:w filename 将编辑的数据存为另一个文件(另存为)
:r filename 在编辑的数据中,读入另一个文件的数据。亦将"filename"这个文件内容驾到光标坐在行的后面
:n1,n2 w filename 将n1到n2行的内容存储为filename这个文件。
:! command 咱是离开编辑器并执行command指令。例如 :! ls /home
vim环境设置
:set nu 显示行号
:set nonu 取消行号
:nohl 取消高亮(一般查找后使用)
区块选择
v 字符选择,会将光标经过的地方选中
V 列选择,会选择光标经过的所有行
[ctrl/control]+v 区块选择,可以用长方形的方式选择数据
y 将选择的地方复制
d 将选择的地方删除
p 将刚刚复制的地方,在光标所在处粘贴
多文件编辑按键 可通过vim后面同时接好几个文件来同时打开
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个vim的打开的所有文件
多窗口功能
:sp [filename] filename如果唯恐,则是当前文件出现在新窗口
[ctrl/control]+w+↑/↓ 在两个窗口之间移动
vim的环境设置参数
:set nu 设置行号
:set nonu 取消行号
:set hlsearch hlsearch就是high light search(高亮度搜索)。这个就是设置是否将搜寻的字符串反白的设置。模式是hlsearch
:set nohlsearch 取消高亮搜索
:set autoindent 设置自动缩紧
:set noautoindent 取消自动缩紧
:set backup 是否自动存储备份文件?一般是nobackup的,如果设置backup的话,那么当你改动任何一个文件时,则原始文件会被另存成一个文件名为filename~的文件。举例来说,我们编辑hosts,这是:set backup,那么当更懂hosts时,在同目录下,就会产生hosts~文件名的文件,记录原始的hosts文件内容
:set ruler 显示右下角的一些状态列说明
:set showmode 是否要显示--INSERT--之类的字眼在左下角的状态列
:set backspace=(012) 一般来说,如果我们按下i进入编辑模式后,可以利用倒退键(backspace)来删除任意字符的。但是,某些distribution则不许如此。此时,我们就可以通过backspace来这是。当backspace为2时,就是可以删除任意值;0或1时,仅可删除刚刚输入的字符,而无法删除原本就已经存在的文字
:set all 显示目前所有的环境参数设置值
:syntax on
:syntax off
是否依据程序相关语法显示不同颜色?举例来说,在编辑一个纯文本文件时,如果开头是已#开始,那么该列就会编程蓝色。如果你懂的写程序,那么这个:syntax on还会主动帮你排错。但是,如果仅是编写纯文本,要避免颜色对你的屏幕产生的干扰,则可以取消这个设置。
:set bg=dark
:set bg=light
可以显示不同的颜色色调,默认是light。如果你常常发现注释的字体深蓝色是在不容易看,这里可以设置为dark试一下
shell组合键
[ctrl]+u/[ctrl]+k 分别是从光标处向前删除指令串即向后删除指令
[ctrl]+u/[ctrl]+k 光标移到最左端,或光标移到最右端

你可能感兴趣的:(vim快捷键)