vi或vim使用方法

这里写目录标题

    • 编辑命令
      • 插入模式:
      • 命令模式
        • 光标移动
        • 复制粘贴
      • 末行模式:
    • 配置设置
      • 设置行号
      • 设置tab移动格数
      • 已存在的文件 空格和tab 长度替换
    • 其他命令
      • 批量移动多行

vi或vim使用方法_第1张图片

编辑命令

插入模式:

命令 说明
i 在当前字符前面进入输入模式
I 在当前行前面进入输入模式
o 插入一个新行,并且进行输入模式
O 上一行插入一个新行,并且进行输入模 式
a 在当前字符后面进入输入模式
A 在当前行后面进入输入模式

命令模式

光标移动

命令 说明
h
j
k
l
gg 到文章首
G 最后一行
1g 第一行 ng到达n行
Ctrl + f 向前翻整页
Ctrl + b 向后翻整页
Ctrl + u 向前翻半页
Ctrl + d 向后翻半页
^ 将光标快速跳转到本行的行首字符
$ 将光标快速跳转到本行的行尾字符
w 将光标快速跳转到当前光标所在位置的后一个单词的首字母
b 将光标快速跳转到当前光标所在位置的前一个单词的首字母
e 将光标快速跳转到当前光标所在位置的后一个单词的尾字母

复制粘贴

命令 说明
u 撤销
ctrl+y 恢复
r 单字符替换
v 按v键再按上下左右进行视图选中,进行快速缩进
x 删除当前字符,3x删除三个字符
dd 删除一行,剪切一行(ndd光标往下删n行)
dG 从当前行删除到最后一行
d1G 从当前行删除到第一行
dw 删除一个单词
d^ 从当前字符删除到行首
d$ 从当前字符删除到行末
yy 复制当前行整行的内容到vi缓冲区
3yy 复制三行
yw 复制当前光标到单词尾字符的内容到vi缓冲区
y$ 复制当前光标到行尾的内容到vi缓冲区
y^ 复制当前光标到行首的内容到vi缓冲区
P 粘贴上一行 p粘贴下一行
2p 重复粘贴两次

末行模式:

命令 说明
:help 帮助
q 不保存退出
q! 强制不保存退出
wq 保存退出
x 保存退出
w 保存并不退出
/hello 查找hello单词,查找多个n键
%s/hello/world/g 把一篇文章中的所有hello全部替换成world,%第一行到最后的意思
1,10s/hello/world/g 把第1行到第10行的hello替换成world
/old/new 将当前行中查找到的第一个字符“old” 串替换为“new”
/old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
:#,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
:%s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
: s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

配置设置

设置行号

配置文件位置:
/etc/virc 和 /etc/vimrc
末尾增加

set nu

设置tab移动格数

配置文件位置:
/etc/virc 和 /etc/vimrc

" 设置tab移动的格数
set ts=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent

ts 是tabstop的缩写,设TAB宽度为4个空格。
softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样。
expandtab表示缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
autoindent自动缩进

已存在的文件 空格和tab 长度替换

TAB替换为空格

:set ts=4
:set expandtab
:%retab!

空格替换为TAB

:set ts=4
:set noexpandtab
:%retab!

其他命令

批量移动多行

点击“esc”键进入命令模式,使用“:m,n>”或":m,n<"左移或右移,m是起始行,n是结束行
或者
n>5 从第n行开始连续5行,向右移一个tab
n<5 从第n行开始连续5行,向左移一个tab
移动的距离是一个tab,在上面的上文的设置中配置

你可能感兴趣的:(工具,vim)