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

 

posted @ 2019-01-07 10:15  逐梦客!  阅读(266)  评论(0)    收藏  举报