[Linux]-VIM常用操作与基本配置说明

vim基本使用

增强功能

基本配置

 

vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

[Linux]-VIM常用操作与基本配置说明_第1张图片

 

vim基本使用

vim有三种模式,分别是命令模式(Command mode)、输入模式(Insert mode)和底线命令模式(Last line mode)。

命令模式

刚启动时,就是命令模式;此时所有键盘动作被识别为命令。

切换模式:

  • i 切换到输入模式(从当前位置输入),I在行首第一个非空白字符输入

  • a 在光标后插入,A 在行尾插入

  • o 在当前行后插入新行,O 在当前行前插入新行

  • r 进入替换模式(只替换当前字符后续即为插入模式),R一直为替换模式,直到按Esc退出替换模式

  • : 切换到底线命令模式

操作命令:

  • dd 删除当前行

  • yy 复制当前行

  • p 粘贴到下一行,P为粘贴到上一行

  • x 删除当前光标所在处的字符,X为删除光标前的字符

  • u undo,撤销操作

  • Ctrl+r redo,重做上一个动作

  • .(小数点) 重复上一个命令

  • J 合并当前行与下一行

  • cw 删除光标至当前当前单词尾的内容,并切换到输入模式

数字、命令组合后会产生更强的功能:

[n]dd #删除当前行向下共n行
d1G #删除第一行至当前行
dG #删除当前行至文件尾(最后一行)
d$ #删除光标到行尾
d0 #删除关闭到行首

[n]yy #复制当前行向下共n行
y1G #复制第一行至当前行
yG #复制当前行至文件尾(最后一行)
y$ #复制光标到行尾
y0 #复制关闭到行首

搜索

在命令行模式下输入/或?进行搜索(查找字符串末尾添加\c为大小写不敏感查找;添加\C为大小写敏感)

  • / 向下搜索单词

  • ? 向上搜索单词

  • n 重复前面的搜索(下一个)

  • N 反向重复前面搜索(/时为上一个,?时为下一个)

/a\c  # 查找所有a或A
/a\C  # 只查找a

光标操作

hjkl分别表示左下上右移动光标

行间操作

  • gg 移动到第一行

  • G 移动到最后一行

  • Ctrl+f 下移一页

  • Ctrl+b 上移一页

  • Ctrl+d 下移半页

  • Ctrl+u 上移半页

  • [N]G 移动到第N行(按行数后,再按G),或者:N更方便

  • [N] 下移N行(先按数字键,再按回车)

行内操作

  • 0(数字) 移动到行首

  • ^ 移动到行首(第一个非空白字符处)

  • $ 移动到行尾

  • g_ 移动到行尾(最后一个非空白字符处)

  • [N] 后移N个字符(先按数字键,再按空格)

  • w 下一个单词头

  • e 下一个单词尾(若当前不在单词尾部,在跳到当前单词的尾部;否则下一个单词的尾部)

  • f[a] 移到当前行下一个指定字符处(如a)

  • F[a] 移到当前行上一个指定字符处(如a)

输入模式

输入模式就是我们常用的编辑模式,可在命令模式下切换过来(常用i);
Esc退出输入模式,切回到命令模式。

底线命令模式

在命令模式下按:(冒号),进入底线命令模式;按Esc切回到命令模式。常用命令:

  • q 退出

  • q! 不保存退出(丢弃当前的修改)

  • w 保存

  • w [filename] 数据另存为filename

  • r [filename] 将[filename]内容插入到下一行

替换删除

替换操作:[addr]s///[option]

[addr]表示搜索范围,省略时为当前行:

  • 1,[N] 从第一行到N行

  • % 整个文件,同1,$

  • .,$ 从当前行到文件尾

[option]表示操作类型,省略时仅对每行第一个匹配进行替换:

  • g 全局替换

  • c 需进行确认

  • i 不区分大小

删除匹配行 :g//d

删除示例

#删除所有空行
:g/^$/d

#多个空格替换为一个空格(+要转义)
:s/ \+/ /g

替换示例

#将当前行第一个a替换为b
:s/a/b/

#将当前行的所有a替换为b
:s/a/b/g

#将每行第一个a替换为b
:%s/a/b

#将整个文件的所有a替换为b
:%s/a/b/g

#将1至3行的第一个a替换为b
:1,3s/a/b/

在源字符串和目的字符串中出现特殊字符,如'/','<','>',','等需要前面加反斜杠\进行转义

增强功能

多行操作

:set paste:进入粘贴模式,复制内容保持原样,不会自动缩进

在命令行模式下,可以通过N1,N2 来操作多行

  • 9,12 copy 16:9~12行复制到16行后,可简写co

  • 9,12 move 16:9~12行移动到16行后,可简写m

  • 9,12 del:删除9~12行,可简写d

块操作(列)

以多行注释为例:

  • 在命令行模式下,按Ctrl+v,进入列模式;

  • 通过上下键选择要注释的行;

  • I(大写),进入输入模式;

  • 输入(如#12:)增加的内容;

  • Esc,稍等就会发现所有选中行都修改完成。

分屏功能

启动时分屏:

# 上下分屏(横向分屏),N是数字,表示分成几个屏
vim -o[N] file1 file2 ...

# 左右分屏(纵向分屏)
vim -O[N] file1 file2 ...

把光标移到下一个的屏中:Ctrl+W w

关闭分屏

# 关闭当前窗口
Ctrl+W c

# 关闭当前窗口,如果只剩最后一个了,则退出vim。
Ctrl+W q

开启分屏

# 上下分割当前打开的文件。
Ctrl+W s
# 左右分割当前打开的文件。 
Ctrl+W v

# 上下分割,并打开一个新的文件。
:sp filename
# 左右分割,并打开一个新的文件。
:vsp filename

基本配置

vim的全局配置一般在/etc/vim/vimrc,个人的配置在~/.vimrc;修改配置文件,增加:

syntax on
set number
set showcmd
set autoindent
set tabstop=4
set shiftwidth=4
set cursorline
set showmatch

 

你可能感兴趣的:(系统与软件应用,vim,linux)