博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VIM文本编辑器
阅读量:5749 次
发布时间:2019-06-18

本文共 3575 字,大约阅读时间需要 11 分钟。

hot3.png

一)、VIVIM

vimIMproved)编辑器是vivisual interface)编辑器的增强版,它是Linux系统编辑文本文件重要的工具之一,也是最基础的编辑工具。它可以执行输出、删除、查找、替换、块操作等众多文本操作。

 

基本操作

二)、VIM基本操作。

1)、使用vim打开一个文件:

#vim [option]... [FILE]...

 

2)、直接输入VIM可查看当前版本及信息:

#vim

#vim +# file

打开文件时光标直接处于第#行行首。

 

 

三)、模式化编辑器:

1)、主要模式:

编辑模式(command mode):用vim打开文件时的默认模式,进行键盘操作,可以移动光标,复制、粘贴、删除等操作。

输入模式(Insert mode):对文件进行编辑和修改。

末行模式last line mode):vim内置的命令行接口,执行vim的内置命令。

 

2)、模式转换:

编辑模式à输入模式:

i在光标所在处的前方转换为输入模式。

I:光标移至行首切换为输入模式。

a在光标所在的后方转换为输入模式。

A:光标移至行尾切换为输入模式。

o在光标所在行的下方新建一个空行并转换为输入模式。

O:在光标所在行的上方新建一个空白行并转换为输入模式。

s:删除光标所在处字符,并进入插入模式。

S:删除光标所在的行,并进入插入模式

 

输入模式à编辑模式

ESC

 

编辑模式à末行模式

:

 

末行模式à编辑模式

ESC

 

输入à编辑à末行

 

 

四)、保存退出文件:

1)、在末行模式下:

q:退出文件。

q!:不保存退出。

w:写入。

w!:若文件为只读,强制写入。

wq:保存退出。

x:保存退出。

wq!:强制保存并退出。

newfilename:写入到一个新文件中。

e!:放弃文件修改,从上次保存的位置重新编辑。

 

2)、在编辑模式下:

ZZ:保存退出。

 

编辑模式

 

五)、光标移动:

1)、字符间移动:

k:上一行。

j:下一行。

h:左一字符。

l:右一字符。

#{h|j|k|l}:跳#个字符或行。

 

2)、单词间移动:

w:下一个单词词首。

e:当前单词或下一个单词词尾。

b:当前单词或前一个单词词首。

#{w|e|b}:#个单词。

 

3)、行内移动:

^:行首第一个非空白字符。

0:绝对行首。

$:绝对行尾。

 

4)、句子间移动:

):下一句句首。

(:上一句句首。

 

5)、段落间移动:

}:下一段段首。

{

:下一段段首。

 

6)、行间移动:

G:跳转至最后一行。

#G: 跳转至第#行。

gg:跳转至首行。

H:跳转至屏幕顶行

#H:跳转至屏幕顶行下第#行。

M:跳转至屏幕的中间一行。

#L:跳转至屏幕底行上第#行。

#[Enter]:光标向下移动#行。

 

7)、翻屏:

Ctrl+f:向文件尾部翻一屏。

Ctrl+b:向文件首部翻一屏。

Ctrl+d:向文件尾部翻半屏。

Ctrl+u:向文件首部翻半屏。

Ctrl+y:向文件尾部翻一行。

Ctrl+e:向文件首部翻一行。

 

 

六)、编辑命令:

1)、删除:

x:删除光标所在处的字符。

X:删除光标所在处前一个字符。

#{x|X}:删除光标所在处{

|}#个字符。

 

d:结合光标跳转字符使用,删除跳转范围内的字符。

d#{

w|b|e}:删除单词。

d{

$|0|^}:删除光标所在位置至行{
|}

D|d$删除光标所在位置至行尾。

d#G:删除光标所在位置至第#行。

dG:删除光标所在位置至最后一行。

#dd从光标所在行开始删除#行。

 

注意:最后一次删除的内容会被保存至缓冲区。

 

2)、复制:

yyank

结合光标跳转字符使用,复制跳转范围内的字符。

y#{

w|b|e}:复制单词。

y{

$|0|^}:复制光标至行{
|}

#{Y|yy}复制光标所在位置后#行。

yG:复制光标所位置到最后一行。

y#G:复制光标所位置到第#行。

 

3)、粘贴:

ppaste

粘贴的位置取决于最后一次删除或复制操作的级别。

行级别:

p:粘贴于当前行下方。

P:粘贴于当前行上方。

 

小于行级别:

p:粘贴于当前光标所在处的后方。

P:粘贴于当前光标所在处的前方。

 

4)、修改:

cchange

先删除,再转换为输入模式:

结合光标跳转字符使用,修改跳转范围内的字符。

c{

w|b|e}:删除单词并转换为输入模式。

c{

$|0|^}:删除光标位置至行{
|}并转换为输入模式。

C|c$删除光标所在位置至行尾并转换为输入模式

c#G:删除光标所在位置至第#并转换为输入模式

cG:删除光标所在位置至最后一行并转换为输入模式

#cc从光标所在行开始删除#并转换为输入模式

 

5)、撤消编辑:

uundo

#u:撤消最近的#次操作,最多50次。

 

撤消此前的撤消操作:

Ctrl+r

 

重复前一条命令:

.

 

末行模式

 

七)、内容界定:

1)、 行间跳转:

.:当前行

#:第#

$:最后一行

$-#:倒数第#行。

 

2)、内容界定和操作:

m,n:界定第m行至第n行。

.,#:当前光标所在行到第#行。

#,$:第#行至最后一行。

.,$:当前光标所在行到最后一行。

%|1,$:界定全文。

 

 cdy等命令可以直接附加在地址范围后使用,对选定范围进行删除、复制等操作。

 

w /path/to/somefil:将选定范围内的内容保存至某文件中。

r /path/from/somefile:将指定的文件中的内容读取到指定位置。

 

八)、文本查找:

1)、字符查找:

用法同less命令:

/pattern:向下查找匹配的字符串。

?pattern:向上查找匹配的字符串。

 

n:重复前一个查找的操作。如果使用/进行查找,则n表示向下查找,如果使用?进行查找,则n表示向上查找。

N:n相反,表示与前一个查找进行反向操作。

 

2)、文本替换:

s/查找模式/要替换成的内容/gic

查找模式:可以使用正则表达式。

要替换成的内容:不能使用模式,仅能使用引用。

 

 gglobal,全行替换;如果不使用g,查找的字符所在行中存在不止一个匹配项时,只替换第一个。

iignore case,不区分字符大小写。

c:替换前提示用户确认是否替换,常与g同时使用。

 

其他模式

 

九)、其他模式:

1)、可视化模式:

用于选取整块范围的模式。

在编辑模式下:

v:光标走过的字符。

V:光标走过的行。

Ctrl+v:以长方形的方式进行选择

cdy等命令可以直接使用,对选定范围进行删除、复制等操作。

 

2)、多文件模式:

可以同时打开多个文件,并在各个文件中进行切换。

#vim FILE1 FILE2...

在末行模式下:

n|next:下一个文件。

N|previous:上一个文件。

first:第一个文件。

last:最后一个文件。

wa|wall:保存所有文件。

qa|qall:退出所有文件。

wqa|wqall:保存并退出所有文件。

 

3)、多窗口模式:

多窗口编辑操作:

 Ctrl+w, Arrow:窗口间切换。

 

单文件分割:

Ctrl+w,s:水平分割。

Ctrl+w,v:垂直分割。

 

多文件分割:

#vim -{o|O} FILE1 FILE2...

-o: 水平分割。

-O: 垂直分割。

 

属性和配置文件

 

十)、窗口属性定义:

1)、命令:

在末行模式下输入设置命令:

set:显示与系统默认值不同的设置参数,一般就是用户改动过的设置。

set all:显示目前所有环境参数设置值。

set nu|nonu :显示行号;默认关闭。

set ai|noai :自动缩进;设置了此选项后,换行时光标会自动对齐上面行的行首位置,而不会回到绝对行首;默认关闭。

set ic|noic :忽略大小写;设置此项后,在查找字符时会忽略大小,默认关闭。

set sm|nosm :显示括号;设置此选项后,光标移至括号时,自动高亮显示与之匹配的另一半括号;默认开启。

set hlsearch|nohlsearch:搜索高亮显示;搜索字符时,会自动高亮标识所有的匹配字符,此选项会默认开启,并且即使关闭了当前文件,再次打开其它文件时也会高亮标识之前的搜索结果。

syntax on|off :语法高亮显示控制可以帮忙用户标识语法结构,查找语法错误。

 

2)、配置文件:

可将属性命令写在配置文件中设置vim默认属性,注释使用双引号。

        全局配置文件:/etc/vimrc

        用户配置文件:~/vimrc

本文出自 “” 博客,请务必保留此出处

转载于:https://my.oschina.net/masachencer/blog/540881

你可能感兴趣的文章
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>
【探索HTML5第二弹01】HTML5的前世今生以及来世
查看>>
Failed to connect to remote VM. Connection refused. Connection refused: connect
查看>>
freeze
查看>>
SAP HANA存储过程结果视图调用
查看>>
设计模式 ( 十八 ):State状态模式 -- 行为型
查看>>
OracleLinux安装说明
查看>>
nova分析(7)—— nova-scheduler
查看>>
Entity Framework 实体框架的形成之旅--Code First模式中使用 Fluent API 配置(6)
查看>>
OpenMediaVault 搭建git,ssh无法连接问题
查看>>
java多线程之:Java中的ReentrantLock和synchronized两种锁定机制的对比 (转载)
查看>>
【Web动画】SVG 实现复杂线条动画
查看>>
使用Wireshark捕捉USB通信数据
查看>>