表7-1 vi/vim命令的参数选项及说明
表7-22命令 | 说明 |
普通模式:移动光标的操作 | |
G或(shift+g) | 将光标移动到文件的最后一行 |
gg | 将光标移动到文件的第一行,等价于1gg或1G |
0 | 数字0,将光标从所在位置移动到当前行的开头 |
$ | 从光标所在位置将光标移动到当前行的结尾 |
n<Enter> | n为数字,<Enter>为回车键,将光标从当前位置向下移动n行。 |
ngg | n为数字,移动到文件的第n行,如11gg可移动到第11行,可配合“:set nu”查看,同nG |
H | 光标移动到当前窗口最上方的那一行 |
M | 光标移动到当前窗口中间的那一行 |
L | 光标移动到当前窗口最下方的那一行 |
h或(←) | 光标向左移动一个字符 |
j或(↓) | 光标向下移动一个字符 |
k或(↑) | 光标向上移动一个字符 |
l或(→) | 光标向右移动一个字符 |
普通模式:搜索与替换操作 | |
/oldboy | 从光标位置开始,向下寻找名为oldboy的字符串 |
?oldboy | 从光标位置开始,向上寻找名为oldboy的字符串 |
n | 从光标位置开始,向下重复前一个搜索的的动作 |
N | 从光标位置开始,向上重复前一个搜索的的动作 |
:g/A/s//B/g | 把符合A的内容全部替换为B,斜线为分隔符,可以用@、#等替代 |
:%s/A/B/g | 把符合A的内容全部替换为B,斜线为分隔符,可以用@、#等替代 |
:n1,n2s/A/B/gc | n1、n2为数字,在第n1行和n2行间寻找A,用B替换 |
普通模式:复制、粘贴、删除等操作 | |
yy | 复制光标所在的当前行 |
nyy | n为数字,复制光标开始向下共n行 |
p/P | p将已复制的数据粘贴到光标的下一行,P则为粘贴到光标的上一行 |
dd | 删除光标所在的当前行 |
ndd | n为数字,删除从光标开始向下共n行 |
u | 恢复(回滚)前一个执行过操作 |
. | 点号。重复前一个执行过的动作 |
x | 向后删除字符 |
X | 向前删除字符 |
d1G | 删除当前行至第一行 |
dG | 删除当前行至最后一行 |
d0 | 删除当前光标文本至行首 |
d$ | 删除当前光标文本至行尾 |
进入编辑模式命令 | |
i | 在当前光标所在处插入文字 |
a | 在当前光标所在下一个字符处插入文字 |
I | 在当前所在行的行首第一个非空格符处开始插入文字,和A相反 |
A | 在当前所在行的行尾最后一个字符处开始插入文字,和I相反 |
O | 在当前所在行的上一行处插入新的一行 |
o | 在当前所在行的下一行处插入新的一行 |
Esc | 退出编辑模式,回到命令模式中 |
命令行模式 | |
:wq | 退出并保存 |
:wq! | 退出并强制保存,“!”为强制的意思 |
:q! | 强制退出,不保存 |
:n1,n2 w filename | n1、n2为数字,将n1行到n2行的内容保存成filename这个文件 |
:n1,n2 co n3 | n1、n2为数字,将n1行到n2行的内容拷贝到n3位置下 |
:n1,n2 m n3 | n1、n2为数字,将n1行到n2行的内容挪至n3位置下 |
:!command | 暂时离开vi到命令行模式下执行command的显示结果!例如 :! ls /etc |
:set nu | 显示行号 |
:set nonu | 与set nu相反,取消行号 |
:vs filename | 垂直分屏显示,同时显示当前文件和filename对应文件的内容 |
:sp filename | 水平分屏显示,同时显示当前文件和filename对应文件的内容 |
I + # + Esc | 在可视块模式下(Ctrl + v), 一次性注释所选的多行,取消注释可用:n1,n2s/#/ /gc[t1] ,这里操作是一个通用的方法,#号可以换成别的操作,例如tab键,这样就是批量缩进 |
Del | 在可视块模式下(Ctrl + v),一次性删除所选内容 |
r | 在可视块模式下(Ctrl + v),一次性替换所选内容 |
内容来自老男孩2018年7月出版的新书《跟老男孩学Linux运维:核心系统基础实践》第7章 ,敬请期待。
[t1]这是几种方法?如果是多种方法,各方法间请用顿号。
原文地址:http://blog.51cto.com/oldboy/2113613