工具癖程序员LINUX

Vim 入门

2017-05-12  本文已影响270人  SOMCENT

Vim 简介

Vim (注:编辑器之神)是从 vi 发展出来的一个文本编辑器,在程序员中被广泛使用。和 Emacs (注:神的编辑器)并列成为 类 Unix 系统用户最喜欢的编辑器。

.

Vim 的第一个版本由 布莱姆·米勒 在 1991 年发布。最初的简称是 Vi IMitation,随着功能的不断增加,正式名称改成了 Vi IMproved 。现在是在开放源代码方式下发行的自由软件

协议

目前, Vim 是按照 Vim 许可证发布的开源软件,这个协议兼容 GPL 。

---- 删改自 维基百科:Vim


Vim 哲学

Vim 采用模式编辑的理念,即它提供了多种模式,按键在不同的模式下作用不同。

---- 引用自掘金:Vim 简史

Vim 的安装

在大部分Linux发行版中,Vim是默认安装的。
安装Vim,只需要在终端中输入以下命令:

sudo apt install vim

或者

sudo apt-get install vim

----引用自简书:Linux探索之旅 | 第五部分第一课:Vim岂是池中物,宝剑锋从磨砺出


Vim 的用法

打开文件:

vim [OPTION]... [FILE]...

如果不指定文件则进入以下界面:

vim +2 /etc/passwd  ##使用vim打开/etc/passwd文件并且使光标处在第二行
vim PATTERN  /etc/passwd ## 使用vim打开/etc/passwd文件并且使光标处在指定模式匹配到的行上
##关于模式请自行查阅正则表达式的相应内容,

Vim 是一种模式化的编辑器, 分为以下 4 种模式:

命令模式(Command Mode):输入相应指令完成文本的编辑

输入模式(Insert Mode):可直接输入字符

末行模式(last line mode):Vim 内建的命令行接口,功能强大

可视化模式:可选定字符通过相应指令执行对选定字符的操作

模式转换:

命令模式 –> 输入模式

 i:在所在光标前进入插入模式
 a:在所在在光标后进入插入模式
 o:在光标所在行下新建一行,并转到插入模式
 O;在光标所在行上新建一行,并转到插入模式
 I:直接跳到所在行的行首,并进入插入模式
 A:直接跳大所在行的行尾,并进入插入模式

输入模式 –> 编辑模式

按下ESC键退回到命令模式

命令模式 –> 末行模式

输入: 进入末行模式

末行模式 –> 命令模式

按下ESC键退回命令模式, 可能有时候需要按两下

关闭文件:

末行模式中:

    q:退出
    w:保存
    q!:强制退出
    wq:保存退出
    x:保存退出

命令模式下:

    ZZ:保存退出

光标跳转:

字符间跳转:

 h:左
 j:下
 k:上
 l:右
 # COMMAND :指定一次跳转的数量, 例如 3h , 向左跳转 3 个字符

.

单词间跳转:

 w:后一个单词的词首
 e:当前或下一个单词的词尾
 b:当前或上一个单词的词首
 #COMMAND:同样可以通过#指定一次跳转的数量

.

行首尾跳转:

 ^:跳转到当前行的第一个非空白字符
 $:跳转到当前行的尾部
 0:跳转到当前行的首部

.

行间移动:

 #G:跳转到指定行
 G:跳转到最后一行
 gg,1G:跳转到第一行

.

句间移动:

):下一句
(:上一句
#COMMAND:同样可以通过#指定一次跳转的数量

.

段间移动:

}:下一段
{:上一段
#COMMAND:同样可以通过#制定一次跳转的数量

Vim 的命令模式下的命令:

字符编辑:

x:删除当前光标所在的字符
#x:删除当前光标起始处的#个字符
xp:交换和光标所在字符后的字符的位置

.

替换命令:

r:替换当前光标所在字符

.

删除命令:

d:删除命令, 可结合光标跳转命令使用,来实现范围删除
例如:dw删除一个单词, dG删除当前光标所在行到最后一行
dd:删除整行
D:删除光标当前所在行并保存当前行
#COMMAND:同样可以通过#制定一次跳转的数量

.

粘贴命令:

p:粘贴当前缓存区的内容, 如果缓存区中内容为整行内容,则内容粘贴在当前行的正下方, 否则粘贴至光标的后面

.

复制命令:

y:复制, 工作命令相似d命令
例如:yw复制一个单词
yy:复制整行
#COMMAND:同样可以通过#制定一次跳转的数量

.

改变命令:

c:修改,可以使 命令模式 --> 输入模式
cc:删除行并输入新内容
cw:删除后一个单词,并进入插入模式
ce,c^,c0...操作请自己尝试, 这里不做阐述

其他相关的编辑操作:

v:按字符选定
V:按行选定
选定后结合编辑命令使用
u:撤销之前的编辑
Ctrl+r:撤销之前的撤销
.:重复前一个编辑操作

翻屏操作:

Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏

查找操作:

/PATTERN:在全文搜索指定模式匹配的字符, 从光标的位置至文件尾部的顺序
?PATTERN:在全文搜索指定模式匹配的字符, 从光标的位置至文件首部的顺序
n:与当前命令同方向, /PATTERN为往后翻
N:与当前命令反方向

Vim 末行模式的操作:

(1) 地址定界

注释:以下命令不加:, 使用前须输入:进入末行模式
start,end
#:具体第#行, 例如2表示第2行
#,#:表示第#行到第#行, 例如2,10表示第2行到第10行
#,+#:表示左侧的#表示起始, 加上右边#表示的行数
.:表示当前行
$:表示最后一行
.,$-1:表示当前行到倒数第2行
%:表示全文, 相当于1,$
/pat1/,/pat2/:从第一个被匹配的pat1行开始,到第一个被匹配的pat2的行结束
使用方法:
后跟一个编辑命令
d:删除
y:复制
w /path/to/somewhere:将范围内的行另存到指定文件
r /path/to/somewhere:在指定位置插入指定文件的所有内容

(2) 查找和替换

地址定界s/要查找的内容/替换的内容/修饰符
  例如:替换全文的abc为123 %s/abc/123/gi
要查找的内容:可使用模式匹配
替换为的内容:不可使用模式, 但可以使用\1,\2等后向引用, 还可以使用&符号引用在前面找到的内容
修饰符:
i:忽略大小写
g:全局替换
查找替换的分隔符可替换为其他字符
例如::s/abc/123/g可替换成 :s@abc@123@g

多文件模式:

vim FILE1 FILE2 FILE3...

.

在末行模式下输入以下命令:
   firs:第一个
   netx:下一个
   prev:上一个
   last:最后一个
   wall 保存所有文件
   qall 退出所有

窗口分隔模式:

vim -o|-O FILE1 FILE2...
-o:水平分隔
-O:垂直分隔
在窗口间切换:Ctrl+w+上下左右
单文件窗口分隔:
Ctrl+w,s split 水平分隔
Ctrl+w,v vertical 垂直分隔

定制 Vim 的工作特性:

我们可以通过修改 Vim 的配置文件来达到定制 Vim 的工作特性

配置文件:
  全局 /etc/vimrc
  个人 ~/.vimrc
末行模式下的配置只对当前vim进程有效

(1) 行号

显示:set number, 简写为set nu
取消显示:set nonumber, 简写为set nonu

(2) 括号匹配

匹配:set showmatch, 简写为set sm
取消:set nosm

(3) 自动缩进

启用:set ai
禁用:set noai

(4) 高亮显示

启用:set hlsearch
禁用:set nohlsearch 简写 set noh

(5) 语法高亮

启用:syntax on
禁用:syntax off

(6) 忽略字符大小写

启用:set ic
禁用:set noic

(7) 获取帮助:

:help
:help subject

----引用自 178Linux: Vim 入门及进阶

上一篇 下一篇

猜你喜欢

热点阅读