vi常用快捷键

vim快捷键

一般指令模式可用的按钮说明,光标移动、复制粘贴、搜索取代等

移动光标的方法

h 或 向左方向键(←)光标向左移动一个字符
j 或 向下方向键(↓)光标向下移动一个字符
k 或 向上方向键(↑)光标向上移动一个字符
l 或 向右方向键(→)光标向右移动一个字符
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 列,可以使用 "30j" 或 "30↓" 的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f]屏幕'向下'移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]屏幕'向上'移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]屏幕'向下'移动半页
[Ctrl] + [u]屏幕'向上'移动半页
+光标移动到非空白字符下一列
-光标移动到非空白字符上一列
n那个 n 表示'数字',例如 20 。 按下数字后再按空白键,光标会向右移动这一列的 n 个字符。 例如 20
则光标会向后面移动 20 个字符距离。
0 或功能键[Home]这是数字' 0 ':移动到这一列的最前面字符处 (常用)
$ 或功能键[End]移动到这一列的最后面字符处(常用)
H光标移动到这个屏幕的最上方那一列的第一个字符
M光标移动到这个屏幕的中央那一列的第一个字符
L光标移动到这个屏幕的最下方那一列的第一个字符
G移动到这个文件的最后一列(常用)
nGn 为数字。 移动到此文件的第 n 列。 例如 20G 则会移动到这个文件的第 20 列(可配合 :set nu)
gg移动到这个文件的第一列,相当于 1G 啊! (常用)
nn 为数字。 光标向下移动 n 列(常用)

搜索与取代

/word向光标之下寻找一个名称为 word 的字符串。 例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (
常用)
?word向光标之上寻找一个字串名称为 word 的字符串。
n这个 n 是英文按鍵。 代表重复前一个搜索的动作。 举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这
个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。 如果是执行 ?vbird 的话,那么按下
n 则会向上继续搜索名称为 vbird 的字符串!
N这个 N 是英文按键。 与 n 刚好相反,为'反向'进行前一个搜索动作。 例如 /vbird 后,按下 N 表示'向上'搜索
vbird 。
搜寻与取代使用 /word 配合 n 及 N 是非常有帮助的! 可以让你重复的找到一些你搜索的关键词!
:n1,n2s/word1/word2/gn1 与 n2 为数字。 在第 n1 与 n2 列之间寻找 word1 这个字符串,并将该字符串取代为 word2 ! 举例来说,在
100 到 200 列之间搜寻 vbird 并取代为 VBIRD 则:':100,200s/vbird/VBIRD/g'。 (常用)
:1,$s/word1/word2/g从第一列到最后一列寻找 word1 字符串,并将该字符串取代为 word2 ! (常用)
:1,$s/word1/word2/gc从第一列到最后一列寻找 word1 字符串,并将该字符串取代为 word2 ! 且在替换前显示提示字符给用户确认(
confirm) 是否需要取代! (常用)

:s(substitute) :g(global) 查阅

删除、复制与粘贴

x, X在一列字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace]
亦即是倒退键) (常用)
nxn 为数字,连续向后删除 n 个字符。 举例来说,我要连续删除10个字符, 『10x』。
dd删除光标所在的那一整列(常用)
nddn 为数字。 删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用)
d1G删除光标所在到第一列的所有资料
dG删除光标所在到最后一列的所有资料
d$删除光标所在处,到该列的最后一个字符
d0那个是数字的 0 ,删除光标所在处,到该列的最前面一个字符
yy复制光标所在的那一列(常用)
nyyn 为数字。 复制光标所在的向下n行,例如20yy则是复制20 列(常用)
y1G复制光标所在列到第一列的所有资料
yG复制光标所在列到最后一列的所有资料
y0复制光标所在的那个字符到该行行首的所有资料
y$复制光标所在的那个字符到该行尾的所有资料
p, Pp 为将已复制的数据在光标下一列粘贴,P 则为贴在光标上一列! 举例来说,我目前光标在第20列,且已经复制了
10列资料。 则按下 p 后, 那10列数据会贴在原本的20列之后,亦即由21列开始贴。 但如果是按下 P 呢? 那么
原本的第20列会被推到变成30列。 (常用)
J将光标所在列与下一列的数据结合成同一列
c重复删除多个数据,例如向下删除 10 列,[ 10cj ]
u复原前一个动作。 (常用)
[Ctrl]+r重做上一个动作。 (常用)
这个 u 与 [Ctrl]+r 是很常用的指令! 一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿! 很快乐的啦!
.不要怀疑! 这就是小数点! 意思是重复前一个动作的意思。 如果你想要重复删除、重复粘贴等等动作,按下小数
点''.』就好了! (常用)

:y yank

一般指令模式切换到编辑模式的可用的按钮说明

i, I进入插入模式(Insert mode):
i 为'从目前光标所在处插入', I 为'在目前所在列的第一个非空白字符处开
始插入'。 (常用)
a, A进入插入模式(Insert mode):
a 为'从目前光标所在的下一个字符处开始插入', A 为'从光标所在列的最后
一个字符处开始插入'。 (常用)
o, O进入插入模式(Insert mode):
这是英文字母 o 的大小写。 o 为'在目前光标所在的下一列处插入新的一列
'; O 为在目前光标所在处的上一列插入新的一列! (常用)
r, R进入取代模式(Replace mode):
r 只会取代光标所在的那一个字符一次; R会一直取代光标所在的文字,直到
按下 ESC 为止; (常用)
上面这些按键中,在 vi 画面的左下角处会出现'--INSERT--'或'--REPLACE--'的字样。 由名称就知道该动作了吧!! 特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
[Esc]退出编辑模式,回到一般指令模式中(常用)

一般指令模式切换到指令行模式的可用按钮说明

:w将编辑的数据写入硬盘文件中(常用)
:w!若档案属性为'只读'时,强制写入该档案。 不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!如果曾修改过文件,又不想保存,使用 ! 为强制离开不储存档案。<
注意一下啊,那个惊叹号 (!) 在 vi
当中,常常具有'强制'的意思~
:wq保存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔! 若文件没有更动,则不保存离开,若档案已经被更动过,则储存后离开!
:w [filename]将编辑的数据保存为另一个文件(类似另存新文件)
:r [filename]在编辑的数据中,读入另一个文件的数据。 亦即将 『filename』 这个档案内容加到光标所在列后面
:n1,n2 w [filename]将 n1 到 n2 的内容存储成 filename 这个文件。
:! command临时退出 vi 到命令行模式下运行 command 的显示结果! 例如
『:! ls /home'即可在 vi 当中察看 /home
底下以 ls 输出的文件信息!

区块选择

v字符选择,会将光标经过的地方反白选择!
V列选择,会将光标经过的列反白选择!
[Ctrl]+v区块选择,可以用长方形的方式选择资料
y将反白的地方复制起来
d将反白的地方删除掉
p将刚刚复制的区块,在光标所在处贴上!

多窗口

:sp [filename]开启一个新窗口,如果有加 filename, 表示在新窗口打开一个新档案,否则表示两个窗口为同一个档案内容(同
步显示)。
[ctrl]+w+ j
[ctrl]+w+↓
按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下方向键),则光标可
移动到下方的窗口。
[ctrl]+w+ k
[ctrl]+w+↑
同上,不过光标移动到上面的窗口。
[ctrl]+w+ q其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用ctrl]+w+↓ 移动到下方窗口后,按
下 :q即可离开, 也可以按下 [ctrl]+w+q 啊!

挑字补全功能

组合按钮补齐的内容
[ctrl]+x -> [ctrl]+n透过目前正在编辑的这个'档案的内容文字'作为关键词,予以补齐
[ctrl]+x -> [ctrl]+f以当前目录内的'文件名'作为关键词,予以补齐
[ctrl]+x -> [ctrl]+o以扩展名作为语法补充,以 vim 内建的关键词,予以补齐

环境设定

:set nu
:set nonu
就是设定与取消行号啊!
:set hlsearch
:set nohlsearch
hlsearch 就是 high light search(高亮度搜寻)。 这个就是设置是否将搜索的字符串反白的设置。 默认值是h
tcarch
:set autoindent
:set noautoindent
是否自动缩排? autoindent 就是自动缩进。
:set backup是否自动保存备份文件? 一般是 nobackup 的, 如果设定 backup 的话,那么当你更动任何一个文件时,则原始
文件会被另存成一个文件名为 filename~ 的文件。 举例来说,我们编辑 hosts ,设定 :set backup ,那么当更
动 hosts 时,在同目录下,就会产生 hosts~ 文件名的档案,记录原始的 hosts 文件内容
:set ruler还记得我们提到的右下角的一些状态栏说明吗? 这个 ruler 就是在显示或不显示该设定值的啦!
:set showmode这个则是,是否要显示 --INSERT-- 之类的字眼在左下角的状态列。
:set backspace=(012)一般来说, 如果我们按下 i 进入编辑模式后,可以利用倒退键 (backspace) 来删除任意字符。 但是,某些 d
istribution 则不许如此。 此时,我们就可以通过 backspace 来设定啰~ 当 backspace 为 2 时,就是可以删除
任意值; 0 或 1 时,仅可删除刚刚输入的字符, 而无法删除原本就已经存在的文字了!
:set all显示目前所有的环境参数设置。
:set显示与系统默认值不同的设定参数, 一般来说就是你有自行变动过的设定参数啦!
:syntax on
:syntax off
是否依据程序相关语法显示不同颜色? 举例来说,在编辑一个纯文字文件时,如果开头是以 # 开始,那么该列就
会变成蓝色。 如果你懂得写程序,那么这个 :syntax on 还会主动的帮你除错呢! 但是, 如果您仅是编写文本
文件,要避免颜色对你的屏幕生成的干扰,则可以取消此设置 。
:set bg=dark
:set bg=light
可用以显示不同的颜色色调,默认是' light '。 如果你常常发现注解的字体深蓝色实在很不容易看, 那么这里可
以设定为 dark 喔! 试看看,会有不同的样式呢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值