Linux学习日记之vi/vim

我们两清 提交于 2020-02-26 16:08:18

基本常用的 vi 命令

[ctrl] + [f] 屏幕 向下 移动一页,相当于 [Page Dow] 按键
[ctrl] + [d] 屏幕 向上 移动一页,相当于 [Page Up] 按键
0 或功能键 [Home] 这是数字[ 0 ]: 移动到这一列的最前面字符处
$ 或功能键[End] 移动到这一列的最后面字符处
G 移动到这个文件的最后一列
gg 移动到这个文件的第一列,相当于 IG
n <Enter>* n为数字,光标向下移动 n 列
/word 向光标之下寻找一个名称为 word 的字符串。 例如要在文件内搜寻 mikey 这个字符串就输入 /mikey 即可
?word 向光标之上寻找一个名称为 word 的字符串
n 重复前一个搜寻的动作,指向下搜寻
N 与n相反,向上搜寻
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字符串,并将这个字符串取代为 word2 .例如:在 100 到 200 列之间搜寻 mikey 并取代为 yussi 则 [ :100,200s/mikey/yussi/g ]
:1,$s/word1/word2/g 从第一列到最后一列寻找 word1 字符串,并将该字符串取代为 word2
:1,$s/word1/word2/gc 从第一列到最后一列寻找 word1 字符串,并将该字符串取代为 word2。且在取代前显示提示字符给用户确认是否需要取代。
x,X 在一列字当中, x 为向后删除一个字符 (相当于 【del】 按键),X 为向前删除一个字符 (相当于 【backspace】 按键)
nx n 为数字, 连续向后删除 n 个字符。 例如,我要连续删除 10 个字符,【10x】
dd 删除游标所在的那一整列
ndd n为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20列
yy 复制游标所在的那一列
nyy n为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20列
p,P p为将已复制的数据在光标下一行贴上,P则为贴在游标上一列
u 复原前一个动作
[ctrl] + r 重做上一个动作
. 小数点,意思是重复前一个动作的意思。如果你想要重复删除,重复贴上等等动作,按下小数点【 . 】就好了
i,I 进入插入模式(Insert mode)
a,A 进入插入模式(Insert mode)【a,为[从目前光标所在的下一个字符处开始插入], A 为[从光标所在列的最后一个字符处开始插入]
o,O 进入插入模式(Insert mode) 【o,为[从目前光标所在的下一列处插入新的一列], O为[从光标所在处的上一列插入新的一列]
r,R 进入插入模式(Insert mode) 【r只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止
[Esc] 退出编辑模式,回到一般指令模式中
:w 将编辑的数据写入硬盘文件中
:q 离开vi
在 vi 中 常常具有 【强制】的意思,如 :w! 强制写入,:q!强制离开不储存文件。
:wq 储存后离开,若为 :wq! 则为强制储存后离开
ZZ 若文件没有更动,则不储存离开,若文件已经被更改过,则储存后离开。
:set nu 显示行号
:set nonu 取消行号

常用的 vim 命令和功能

区块选择
v 字符选择,将光标经过的地方反白选择
V 列选择,将光标经过的列反白选择
[ ctrl ] + v 区块选择,可以用长方形的方式选择资料
y 将反白的地方复制起来
d 将反白的地方删除掉
p 将刚刚复制的区块,在游标处贴上
多文本编辑
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个 vim 的开启的所有文件
3. 多窗口功能
:sp [filename] 开启一个新窗口,如果有加filename,表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示)
([ctrl] + w) + j / k ([ctrl] + w) + ↓ / ↑ 光标移动到下面/上面的窗口
4.挑字补全功能
[ctrl] + x -> [ctrl] + n 透过目前正在编辑的这个【文件的内容文字】作为关键词,予以补齐
[ctrl] + x -> [ctrl] + f 以当前目录内的【文件名】作为关键词,予以补齐
ctrl] + x -> [ctrl] + o 以拓展名作为语法补充,以 vim 内建的关键词,予以补齐

学习总结
vim 的使用还是很方便的,功能很强大,但是命令还是较多挺难记住。
鸟哥里的语系编码转换部分还是不是看得很明白( iconv -f big5 vi.big5 -o .utf8 )不是很明白什么意思,转成简体中文好像太麻烦了,不知道有没有更简单的方法。留待以后解决。

                                                         2020/2/26

参考鸟哥linux私房菜
本文章仅用于记录学习过程内容

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!