xNIX/

vi 的一些常用命令及配置

发布
更新
字数
800
阅读
2 分钟

记下一些我可能会经常用到的一些命令。

vi 的一些常用命令

bash
# 显示行号
:set nu

# 取消显示行号
:set nonu

# 到行首
0

# 到行尾
$

# 到文件头
:1

# 到文件尾
:$
G

# 复制当前行
yy

# 粘贴
p

# 删除当前字符
x

# 删除 n 个字符
nx

# 撤销上一步操作
u

# 撤销当前行所有操作
U

# 重新加载文件
:e

# 强制重新加载文件
:e!

# 复制第126行至第130行到150行后
:126,130 co 150

# 复制第126行至第130行到文件最后
:126,130 co $

# 移动第126行到第130行的内容到第150行下
:126,130 m 150

# 删除当前行
dd

# 删除当前行及其后n-1行
ndd

# 删除一个单词
dw

# 删除 n 个单词
ndw

# 删除到行首
d0

# 删除到行尾
d$

# 在光标前插入
i

# 在当前行插入
I

# 在光标后
a

# 在当前行尾插入
A

# 在当前行之下新开一行
o

# 在当前行之上新开一行
O

# 修改当前字符,接着的字符是修改后的字符
r

# 进入覆盖状态
R

# 删除当前字符,然后进入插入模式
s

# 删除当前行,然后进入插入模式
S

# 从光标开始处向文件尾搜索 "keyword"
/keyword

# 从光标开始处向文件头搜索 "keyword"
?keyword

# 在同一方向重复上一次搜索
n

# 在反方向重复上一次搜索
N

# 将当前行中所有 "word1" 用 "word2" 替换
:s/word1/word2/g

# 将第10行至20行中所有 "word1" 用 "word2" 替换
:10,20s/word1/word2/g

# 将文件中所有的 "word1" 用 "word2" 替换
:g/word1/s//word2/g

# 批量为多行添加注释。在 Linux 中,文本每行的起始标志是 ^ ,结束标志是 $ 。
:10,20s/^/#/g

# 批量为多行添加注释。如果注释字符是 // ,则需要使用转义符,如下:
:10,20s/^/\/\//g

# 批量取消注释
:10,20s/^#//g

# 删除所有以 # 开头的行
:g/^#/d

# 删除所有以空格(\s代表空格)开头的行
:g/^\s/d

# 删除以空格#(.*代表多个)开头的行
:g/^.*#/d

# 删除空白行
:g/^$/d

# 删除由空格组成的行
:g/^\s*$/d

另外,在某些系统中,没有预装 vi,但又不想使用那么重的 vim 的时候,可以安装 vim-tiny。
在通过 ssh 使用 vi 的时候,一般习惯使用鼠标右键粘贴剪切板中的内容,有时候不能生效,显示 VISUAL,这时可以在 vi 的命令模式输入:

text
set mouse-=a

就可正常了。但第二次再进入的时候,又会失效了。这时可以在 ~ 下面增加一个 .vimrc 文件,内容如下:

text
if has('mouse')
    set mouse-=a
endif

这样今后就会一直生效了。

评论

正在载入评论…

留下评论

人机验证
四位数字,看不清可点击图片刷新

评论经审核后显示。

回到顶部 ↑