Linux之文本编辑器Vim

一、什么是vim

vi是一种模式编辑器。vi 是Unix世界里极为普遍的全屏幕文本编辑器,几乎可以说任何一台Unix机器都会提供这套软体,
其他的文本编辑器则不一定会存在,但是目前我们使用比较多的是 vim 编辑器。

vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具。

二、vi/vim的使用

基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

1、命令模式

用户刚刚启动vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。
比如我们此时按下a或者i或者o等等,并不会输入一个字符,而是会被当作一个命令进行处理。

1. 移动光标
w(e)    移动光标到下一个单词
b    移动到光标上一个单词

数字0  移动到本行开头
$    移动光标到本行结尾

H    移动光标到屏幕首行的行首
M    移动到光标到屏幕的中间一行的行首
L     移动光标到屏幕的尾行的行首

gg     移动光标到文档的首行
G    移动光标到文档尾行

nG 移动光标到指定行的行首(n为行数,例如 25G 移动到第25行)
:行号 快速定位到哪一行

Ctrl + f 翻到下一页 (向前翻页) front
Ctrl + b 翻到上一页(向后翻页) back

Ctrl + u 向前翻半页
Ctrl + d 向后翻半页

`.  移动光标到上一次的修改行

2. 查找
/字符串 在整篇文档中搜索 字符串,向下查找,按字母 n 跳到下一个
?字符串 在整篇文档中搜索 字符串,向上查找,按字母 n 跳到上一个

* 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
# 查找整个文档,匹配光标所在的所有单词,按下n查找上一处,N下一处

gd 找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上

%     找到括号的另一半!!

:noh 取消查找的内容

3. 复制粘贴
yy 光标在哪一行,输入yy就是复制这一行
p 粘贴yy所复制的内容

7yy 就是复制光标所在行的7行
p 粘贴刚才复制的7行

4. 删除

dd 删除光标所在行
2dd 删除光标所在的2行数据

D 删除当前光标到行尾的内容
dG 删除当前行到文档尾部的内容

x   删除光标所在的字符

5.撤销

u 撤销上一步的操作
Ctrl+r 反撤销

2、输入模式

i: 插入光标前一个字符
I: 插入行首

a: 插入光标后一个字符
A: 插入行未

o: 向下新开一行,插入行首
O: 向上新开一行,插入行首

3、底线命令模式

在命令模式下输入冒号(英文的:),就进入了底线命令模式,
在底线命令模式下可以输入单个或多个字符的命令,常用命令有

:w 将文件内容写入

:q 不保存退出
:q! 不保存强制退出

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

:set number 显示行号
:set nu 显示行号

:set nonu  取消行号

:! command 暂时离开vim指令模式,执行command的结果
例如 :!ip 临时看一下ip信息,然后可以回到vim

4、vim工作模式

Linux之文本编辑器Vim

5、vim按键

移动光标的方法
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符

向下移动5行      5j
向右移动10字符    10l

n(space)    按下数字n,例如10,然后按下空格,光标会向右移动10个字符

ctrl + n 是自动补齐

vim 编辑器中TAB变4空格
vim /etc/vimrc #打开 vimrc 文件,将以下三行内容添加到文件中

set ts=4

set expandtab

set autoindent

上一篇:webpack4打包报错:WARNING in configuration The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults fo


下一篇:ngResource提交json数据如何带参数