vim 是对 vi 的扩展,文中的很多操作是 vi 通用的
vi 是区分大小写的命令的,也就是说 g与G 是不同的命令
在不同模式下,快捷键是不一样的 模式分 一般模式 编辑模式 指令模式
一般模式用于文件内部操作,编辑模式用于输入编写等,指令模式用于对文本文件进行操作
常用操作进入一般模式为开始编辑,或者按 esc 后进入
按键
效果
a,i,r,o,A,I,R,O
进入编辑模式
h,backspace
左移动
l,space
右移动
j
下移动
k
上移动
0,
移动到行首
$
移动到行末,1表示当前行的行尾,2表示当前行的下一行的行尾
b
按照单词向前移动 字首
e
按照单词向后移动 字尾
w
按照单词向后移至次一个字首
H
移动到屏幕最上 非空白字
M
移动到屏幕中央 非空白字
L
移动到屏幕最下 非空白字
G
移动到文档最后一行
gg
移动到文档第一行
v
进入光标模式,配合移动键选中多行
Ctrl+f
向下翻页
Ctrl+b
向上翻页
u
撤销上一次操作
``
回到上次编辑的位置
dw
删除这个单词后面的内容
dd
删除光标当前行
dG
删除光标后的全部文字
d$
删除本行光标后面的内容
d0
删除本行光标前面的内容
y
复制当前行,会复制换行符
yy
复制当前行的内容
yyp
复制当前行到下一行,此复制不会放到剪切板中
nyy
复制当前开始的 n 行
p,P,.
粘贴
ddp
当前行和下一行互换位置
J
合并行
Ctrl+r
重复上一次动作
Ctrl+z
暂停并退出
ZZ
保存离开
xp
交换字符后面的交换到前面
~
更换当前光标位置的大小写,并光标移动到本行右一个位置,直到无法移动
光标详细操作按键
效果
Ctrl+e
向下滚动
Ctrl+b
向上翻页
b
按照单词向前移动 字首
B
按照单词向前移动 字首 忽略一些标点符号
e
按照单词向后移动 字尾
E
按照单词向后移动 忽略一些标点符号
w
按照单词向后移至次一个字首
W
按照单词向后移至次一个字首 忽略一些标点符号
H
移动到屏幕最上 非空白字
M
移动到屏幕中央 非空白字
L
移动到屏幕最下 非空白字
G
移动到文档最后一行
gg
移动到文档第一行
(
光标到句尾
)
光标到局首
{
光标到段落开头
}
光标到段落结尾
nG
光标下移动到 n 行的首位
n$
光标移动到 n 行尾部
n+
光标下移动 n 行
n-
光标上移动 n 行
查找命令指令
效果
*
向下查找同样光标的字符
#
向上查找同样光标的字符
/code
查找 code 一样的内容,向后
?code
查找 code 一样的内容,向前
n
查找下一处
N
查找上一处
ma
在光标处做一个名叫 a 的标记 可用 26 个标记 (a~z)
`a
移动到一个标记 a
d`a
删除当前位置到标记 a 之间的内容
:marks
查看所有标记
指令模式指令
效果
:q
一般退出
:q!
退出不保存
:wq
保存退出
:w filename
另存为 filename
:jumps
历史编辑文档记录
:t nu
设置行号显示
:t nonu
取消行号显示
:t
显示设置参数
:t autoindent
自动缩排,回车与第一个非空格符对齐
:syntax on/off
根据程序语法高亮显示
:t highlight
高亮设置查看
:t hlarch
查找代码高亮显示
:nohlarch
暂时关闭高亮显示
:t nohlarch
永久关闭高亮显示
:t bg=dark
设置暗色调
:t bg=light
设置亮色调
屏幕翻滚按键
效果
Ctrl+f
向文件尾翻一屏幕
Ctrl+b
向文件首翻一屏幕
Ctrl+d
向文件尾翻半屏幕
Ctrl+u
向文件首翻半屏幕
插入命令按键
效果
i
在光标前
I
在当前行首
a
在光标后
A
在当前行尾部
o
在当前行下新开一行
O
在当前行上新开一行
r
替换当前字符
R
替换当前行及后面的字符,直到按 esc 为止
s
从当前行开始,以输入的文本替代指定数目的字符
S
删除指定数目的行,并以输入的文本替代
ncw,nCW
修改指定数目 n 的字符
nCC
修改指定数目 n 的行
删除命令按键
效果
ndw,nDW
删除光标开始及其后 n-1 个字符
dw
删除这个单词后面的内容
dd
删除光标当前行
dG
删除光标后的全部文字
d$
删除本行光标后面的内容
d0
删除本行光标前面的内容
ndd
删除当前行,以及其后的 n-1 行
x
删除一个字符,光标后
X
删除一个字符,光标前
Ctrl+u
删除输入模式下的输入的文本
多窗口模式指令
效果
:split
创建新窗口
Ctrl+w
切换窗口
Ctrl-w =
所有窗口一样高
Ctrl-w + 方向键
多窗口视图切换
多文件编辑指令
效果
:args
列出当前编辑的文件名
:next
打开多文件,使用 n(Next) p(revious)
:file
列出当前打开的所有文件
vim 自定义技巧复制粘贴取消缩进:t paste
进入 paste 模式以后,可以在插入模式下粘贴内容,不会有任何变形这个参数做了这么多事:
textwidth设置为0wrapmargin设置为0t noait nosisofttabstop设置为0revins重置ruler重置showmatch重置formatoptions使用空值
下面的选项值不变,但却被禁用
lispindentexprcindent
绑定快捷键来激活 / 取消 paste 模式
:t pastetoggle=<F11>
出现粘贴换行符错位,设置一下 .vimrc
" this can change way of paste words:t paste" default tabstop=8:t tabstop=4" u keyboard F11 to change paste mode:t pastetoggle=<F11>
vim 缩进
Normal Mode 下,命令>>将对当前行增加缩进,而命令<<则将对当前行减少缩进在命令前使用数字,来指定命令作用的范围
5<<
在 Inrt/Replace Mode 下
Ctrl-Shift-t可以增加当前行的缩进Ctrl-Shift-d则可以减少当前行的缩进使用0-Ctrl-Shift-d命令,将移除所有缩进需要注意的是,当我们输入命令中的 “0” 时,Vim 会认为我们要在文本中插入一个 0,并在屏幕上显示输入的“0”;然后当我们执行命令 0-Ctrl-Shift-d 时,Vim 就会意识到我们要做的是减少缩进,这时 0 会就会从屏幕上消失
vim tab 缩进tab 缩进宽度默认为 8 个空格
我们可以使用以下命令,来修改缩进宽度
:t tabstop=4:t softtabstop=4:t shiftwidth=4:t expandtab
tabstop: 表示一个 tab 显示出来是多少个空格的长度默认 8softtabstop: 表示在编辑模式的时候按退格键的时候退回缩进的长度当使用 expandtab 时特别有用。shiftwidth: 表示每一级缩进的长度一般设置成跟 softtabstop 一样。 当设置成 expandtab 时缩进用空格来表示noexpandtab 则是用制表符表示一个缩进expandtab 选项,用来控制是否将 Tab 转换为空格, 但是这个选项并不会改变已经存在的文本,如果需要应用此设置将所有 Tab 转换为空格,需要执行
:retab!
vim 自动缩进cindent
:t cindent
vim 可以很好的识别出 C 和 Java 等结构化程序设计语言,并且能用 C 语言的缩进格式来处理程序的缩进结构
smartindent:t smartindent
在这种缩进模式中,每一行都和前一行有相同的缩进量,同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}),则取消缩进形式。此外还增加了识别 C 语言关键字的功能。如果一行是以 #开头的,那么这种格式将会被特殊对待而不采用缩进格式。
autoindent:t autoindent
在这种缩进形式中,新增加的行和前一行使用相同的缩进形式
显示隐藏符号默认不显示 :t nolist显示 :t invlist" normal is :t nolist | show hide is :t invlist:t nolist
使用 vim 寄存器
使用 vim 寄存器 “+p 粘贴
根本不用考虑是否自动缩进,是否 paste 模式,直接原文传递
如果想保存原寄存器中内容而同时增加新的内容,就要在 yy 前增加标签标签以双引号开始,跟着的是标签名称,可以是数字 0-9,也可以是 26 个字母
显示所有寄存器内容
:reg
注意两个特殊的寄存器:* 和 +
这两个寄存器是和系统相通的,前者关联系统选择缓冲区,后者关联系统剪切板通过它们可以和其他程序进行数据交换
若寄存器列表里无 * 或 + 寄存器,则可能是由于没有安装 vim 的图形界面所致sudo apt-get install vim-gnome
设置 vim 永远显示行号修改 vim 的配置文件加入 t nu
vi ~/.vimrc
然后输入
t nu
当然也可以输入其他配置类似
t nonusyntax on
vimrc 常用配置
设置行号
t nu
设置自动缩进
t autoindent
设置tab占n个字符
t tabstop=n
设置以空格代替tab(因为有部分场合不允许使用tab)
t expandtab
设置缩进字符数为n
t shiftwidth=n
设置自动语法高亮
syntax on
原文链接:https://rumenz.com/rumenbiji/linux-vi-vim.html
本文发布于:2023-02-28 21:01:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1677715713100165.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:linux vi命令(linuxvi命令是什么).doc
本文 PDF 下载地址:linux vi命令(linuxvi命令是什么).pdf
留言与评论(共有 0 条评论) |