vim基本操作

Posted 明王不动心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim基本操作相关的知识,希望对你有一定的参考价值。

一、vim简介

1.vim是什么?

vim是Vi IMproved,是编辑器vi的一个加强版。

 

2.vim的配置文件

Windows系统的配置文件是vim安装目录下的vimrc文件。
Linux系统,RHEL和CentOS的配置文件是/etc/vimrc,Debian和Ubuntu的配置文是/usr/share/vim/vimrc,还可以在自己的家目录下创建属于自己的的配置,例如~.vimrc。
Mac OS X的配置文件是/usr/share/vim/vimrc。

 

3.vim的四种模式

  • 命令模式(command-mode):用来操作文件,例如保存文件、替换文件内容等
  • 插入模式(insert-mode):对文件进行编辑和修改
  • 可视化模式(visual-mode):高亮对文件进行操作,有两种模式,分为可视化行和可视化块。
  • 正常模式(mormal-mode):主要用来浏览文件内容,其它模式的相互跳转,需要在这做中转。

 

二、vim基本设置

(1)颜色设置

syntax on 开启代码高亮
syntax off 关闭代码高亮
syntax enable 开启代码高亮

 

 

 

(2)搜索设置

set hlsearch 开启搜索高亮
set nohlsearch 关闭搜索高亮
set incsearch 输入搜索字符串的同时进行搜索
set ignorecase 搜索时忽略大小写

 

 

 

 

(3)用户界面

set showmode 开启模式显示
set ruler 开启光标位置提示
set number 显示行号
set nonu 不显示行号
set cursorline 强调光标所在行
set cmdheight=1 命令部分高度为1

 

 

 

 

 

 

(4)编辑辅助配置

set autoindent 自动缩进
set noautoindent 不自动缩进
set smartindent 只能缩进
set autoread 当文件在外部被改变时,vim自动更新载入
set showmatch 显示匹配的括号

 

 

 

 

 

三、常用状态切换操作

1.正常模式——》插入模式

i 在当前位置开始插入
I 在当前行的开始位置开始插入
a 在光标的下一个位置开始插入
A 在当前行的结束为止开始插入
o 在当前行的下方另起一行开始插入
O 在当前行的上方另起一行开始插入
r 替换光标位置的字符
R 才当前位置开始一直往后面进行替换,ESC结束

 

 

 

 

 

 

 

 

2.命令行模式——》退出vim模式

:w 保存文件
:w! 强制保存文件(有权限的前提下)
:q 退出缓冲区(如果有修改则不能退出)
:q! 退出缓冲区不保存修改
:wq 保存文件并退出缓冲区
:x 保存文件并且退出
:wq! 强制保存文件并退出缓冲区(有权限的前提下)
:w <filename> 另存为名为filename
:n1,n2 w <filename> 将n1行到n2行的数据另存为名为filename的文件
:x 如果文件有更改,则保存后退出,否则直接退出

 

 

 

 

 

 

 

 

 

 

注意:所有在vim中进行的操作,在没有进行提交操作之前只是在内存中做的修改,并没有写入的到磁盘文件,数据也并没有被真正的修改。

w是将内存中的文件写入到磁盘文件,q是退出vim的模式,如果没有进行提交,系统是不会允许你退出的,除非强制退出,这就意味着不保存。

x实际就是命令wq或wq!实现的功能,只不过更加的智能。

 

四、常用的光标移动的操作

1.光标字符操作(以字符为单位)

j 向下
k 向上
h 向左
i 向右
$ 光标移动到行尾
0 光标移动到行首
^ 光标移动到行首的第一个非空白字符

 

 

 

 

 

 

 

2.光标词操作(以单词为单位

w 光标移动到后一个词的词尾
W 光标移动到后一个词的词尾且忽略标点符号
e/E 光标移动到本单词的词尾
b 光标移动到前一个词的词首
B 光标移动到前一个词的词首且忽略标点符号

 

 

 

 

 

注意:在Linux文档中,标点符号也要算作是一个单词。

 

3.光标行的操作

G 光标移动到文档的最后一行的第一个非空白字符
nG 光标移动到文档的第n行
gg 光标移动到文档的第一行的第一个非空白字符

 

 

 

补充:在vim中还有光标段(使用{ }操作)、光标句(使用()操作),但是由于在linux中行、段、句的区分并不是很明确,所以很少使用。

 

4.光标页操作

Ctrl+f 向下翻页(Pagedown)
Ctrl+b 向上翻页(Pageup)
Ctrl+d 向下翻半页
Ctrl+u 向上翻半页
H 光标移动到目前页的第一行
M 光标移动到当前页的中间行
L 光标移动到当前页的最后一行

 

 

 

 

 

 

 

补充:Ctrl+o回到光标的上一个位置

 

五、编辑相关的常用操作

1.删除操作

dd 删除光标所在的行
ndd 删除从光标所在行开始向下的n行(包括光标行)
d1G 删除从光标所在行开始到第一行的所有行(包括光标行)
dG 删除从光标所在行开始到最后一行的所有行(包括光标行)
d$ 删除从光标开始到行尾的所有字符(包括光标所在的字符)
d0 删除从光标开始到行首的所有字符(包括光标所在的字符)

 

 

 

 

 

 

2.复制操作

yy 复制光标所在行
nyy 复制从光标所在行开始向下的n行
y1G 复制从光标所在行开始到第一行的所有行(包括当前行)
yG 复制从光标所在行开始到最后一行的所有行(包括当前行)
y$ 复制从光标所在字符开始到行尾的所有字符(包括当前字符)
y^ 复制从光标所在字符开始到行首的所有字符(包括当前字符)

 

 

 

 

 

 

3.粘贴操作

p(小写) 将粘剪贴板中的数据从光标所在行的下一行开始插入
P(大写) 将粘剪贴板中的数据从光标所在行的上一行开始插入

 

 

 

4.撤销与重做

u 撤销上一个操作
Ctrl+r 重复上一个操作

 

 

 

5.替换操作

r 替换当前字符
R 进入替换模式,一直往后面替换,直到ESC结束
cc 替换光标所在行
cw 替换光标所在的单词

 

 

 

 

6.排版操作

:le<ft> 光标所在行左对齐
:ri<ght> 光标所在行右对齐
:ce<nter> 光标所在行居中

 

 

 

 

六、多文件与多窗口操作

在linux中,可以使用vim一次打开多个文件,然后一个文件一个文件的进行操作;

当然,也可以使用同时打开多个vim的窗口,同时对多个文件进行操作。

打开一个vim的窗口一般称作为打开了一个缓冲区。

1.单一缓冲区打开多个文件

:files 目前打开了那些文件
:n 切换到下一个文件,如果文件做了更改必须保存或强制退出
:N 切换到上一个文件,如果文件做了更改必须保存或强制退出
:2N 切换到下下个文件,如果文件做了更改必须保存或强制退出
:bn 切换到下一个文件
:bp 切换到上一个文件

 

 

 

 

 

 

注意:bn/bp相对于n/N来说还是在一个缓冲区,n/N是关闭当前的缓冲区,打开另一个缓冲区,中间只是进行无缝操作。

 

2.同时打开多个vim窗口(多个缓冲区)

:sp [filename] 横向打开多个窗口(缓冲区)
:vsplit [filename] 纵向打开多个窗口
Ctrl+w n 新建一个缓冲区
Ctrl+w q 退出光标所在的缓冲区
Ctrl+w j 光标移动到下一个缓冲区
Ctrl+w k 光标移动到上一个缓冲区
Ctrl+w l 光标移动到右一缓冲区
Ctrl+w h 光标移动到左一缓冲区
Ctrl+w v 左右切割窗口新建缓冲区
Ctrl+w s 上下切割窗口请见缓冲区
Ctrl+w o 使光标所在缓冲区最大化,其它缓冲区隐藏

 

 

 

 

 

 

 

 

 

附录:

vim指令示意图

vim键盘图

 

以上是关于vim基本操作的主要内容,如果未能解决你的问题,请参考以下文章

vim基本操作

vim的基本操作

vim编辑器基本操作介绍

Vim基本操作命令

7种提高工作效率的Vim操作-Vim使用技巧

GVIM/VIM的使用操作——复制粘贴操作