参考:鸟哥的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 | 光标移到最左端,或光标移到最右端 |
网友评论