VIM使用教程
常用命令
a 在光标后一位开始插入
A 在该行的最后插入
I 在该行的最前面插入
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 删除行,如果 5dd ,则一次性删除光标后的5行
yy 复制当前行, 复制多行,则 3yy,则复制当前行附近的3行
p 粘贴
v 进入字符选择模式,选择完成后,按y复制,按p粘贴
ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴
shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴
删除选中的多行
1、dd可以删除当前光标所在的行,要删除多行就可以在dd前面加上要删除的行的数字
2、Shift + v 是按行选中,ctrl + v 是按块选中(按列选) 之后x和d都可以删除
vim中如何实现列编辑操作
1.列如一次注释vim中的多行
a.按Esc(退出编辑或其他模式)
b.打ctrl+ v(视觉遮挡模式)
c.使用向上↑或向下↓箭头键选择所需的行
d.Shift+ i(大写字母I)
e.插入您想要的文本,例如##
f.按 Esc 输入 :wq 即可完成统一编辑了多行。
2.取消vim多行的注释
a.按Esc(退出编辑或其他模式)
b.打ctrl+ v(视觉遮挡模式)
c.使用向上↑或向下↓箭头键选择要取消注释的行。
d.如果要选择多个字符,请使用一个或组合以下方法:
e.使用向左←或向右→箭头键选择更多文本
f.按d或x删除字符。
g.按 Esc 输入 :wq 即可完成统一删除多行注释。
取消了自动缩进和智能缩进vim
:set noai nosi
取消了自动缩进和智能缩进,这样粘贴就不会错行了。但在有的vim中不行,还是排版错乱。
后来发现了更好用的设置:
:set paste
进入paste模式以后,可以在插入模式下粘贴内容,不会有任何变形。这个真是灰常好用,情不自禁看了一下帮助,发现它做了这么多事:
textwidth设置为0
wrapmargin设置为0
set noai
set nosi
softtabstop设置为0
revins重置
ruler重置
showmatch重置
formatoptions使用空值
下面的选项值不变,但却被禁用:
lisp
indentexpr
cindent
怪不得之前只设置noai和nosi不行,原来与这么多因素有关!
但这样还是比较麻烦的,每次要粘贴的话,先set paste,然后粘贴,然后再set nopaste。有没有更方便的呢?你可能想到了,使用键盘映射呀,对。我们可以这样设置::
:map <F10> :set paste<CR> :map <F11> :set nopaste<CR>
这样在粘贴前按F10键启动paste模式,粘贴后按F11取消paste模式即可。其实,paste有一个切换paste开关的选项,这就是pastetoggle。通过它可以绑定快捷键来激活/取消 paste模式。比如::
:set pastetoggle=<F11>
这样减少了一个快捷键的占用,使用起来也更方便一些。
跳转
G 跳转到文件尾部:
gg 跳转到文件开始
vi/vim 设置tab为4个空格
1、 空格|tab 长度设置
配置文件位置:
vim ~/.vimrc
/etc/virc 和 /etc/vimrc
配置文件中如果要添加注释,不能用#,要使用”
" add tab space set ts=4 set softtabstop=4 set shiftwidth=4 set expandtab set autoindent
- ts 是tabstop的缩写,设TAB宽度为4个空格。
- softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
- shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样。
- expandtab表示缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
- autoindent自动缩进
2、已存在的文件 空格|tab 长度替换
TAB替换为空格
:set ts=4 :set expandtab :%retab!
空格替换为TAB
:set ts=4 :set noexpandtab :%retab!
加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB

浙公网安备 33010602011771号