vim文本编辑器及文本处理常用命令

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

160203p7z2cnamxmg2mawx

一、文本编辑器的种类主要有:

行编辑器:sed

全屏编辑器:nano,vi

vim – Vi Improved(vi文本编辑器的升级版)

 

二、Vim文本编辑器相关命令:

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

1.vim打开文件:

vim[option]…FILE…

+#    打开文件后,让光标处于第#行行首

-o     后跟多个文件可水平显示多个窗口

-O    后跟多个文件可垂直显示多个窗口

-b     以二进制方式打开文件

-d file1 file2… 比较多个文件

注:当一个文件不存在时,用vim打开编辑存盘后会自动创建它

 

2.vim的三种主要模式:

命令(normal)模式:默认模式,可移动光标,剪切/粘贴文本。左下角显示文本路径,行数,字符数,右下角显示光标位置

插入(insert)模式:也叫编辑模式,修改文本。左下角显示 –INSERT–

扩展命令(extended command)模式:保存、退出等。左下角显示 “:”

 

3.vim模式切换:

命令模式—>插入模式

i:在光标处输入

I:在光标所在行首输入

a:在光标所在处后输入

A:在光标所在行行尾输入

o:在光标所在行的下方打开一个新行

O:在光标所在行的上方打开一个新行

 

插入模式—>命令模式

ESC

 

命令模式—>扩展命令模式

 

扩展命令模式—>命令模式

ESC,Enter

 

 

4.vim的其他一些模式:

替换(replace)模式:        命令模式下R切换,可随意替换字符;右下角显示–REPALCE–

可视化(visual)模式:v    切换面向字符的可视化模式;右下角显示–VISUAL–

V  切换面向行的可视化模式

ctrl+v   面试块的可视化模式

 

 

5.vim关闭文件

扩展模式

按”:”从命令模式进入Ex模式

wq   存盘退出

q       文本未修改,不存盘退出

q!  文本已被修改,想不存盘退出

w file      文件另存为file

r file 读取file文件内容到当前文件

!command    直接在扩展模式下执行命令

r!command  读入命令的输入到当前文件光标处

 

命令模式下也可关闭文件(不推荐使用)

ZZ     保存退出

ZQ    不保存退出

 

6.命令模式常用命令:

单词间跳转:

w      下一个单词词首

e       下一个单词词尾

b       当前或前一个单词的词首

当前页跳转:

H      页首

M     页中间

L       页底

行首行尾跳转:

^       跳转至行首第一个非空白字符

0       跳转至行首

$       跳转至行尾

行间移动:

#G    调至第#行;扩展模式下可执行 :G

G      最后一行

1G,gg    第一行

 

命令模式下字符操作

x:删除光标所在处字符

#x:删除从光标所在处开始#个字符

xp:交换光标所在处字符和它后面字符的位置(原理是剪切粘贴)

~:波浪符转换大小写

J:删除当前行后的换行符

r:替换光标所在处字符

 

d:删除命令

d$    当前光标删除至行尾

d^    当前光标删除到非空行首

d0    当前光标删除到行首

dw   删除单词

dd    删除光标所在的行

#dd  多行删除,一下删除#行

 

y:复制命令(用法类似d删除)

y$     复制当前光标到行尾

y^     复当前光标位置到非空行首

yw    复制单词

yy     复制光标所在的行

 

p:粘贴

p       粘贴至光标所在行下一行

P       粘贴至光标所在行上一行

 

u:撤销更改

#u    撤销之前多次修改

U      撤销光标落在这行后所有此行的修改

Ctrl+r       返回上次撤销

 

7.扩展命令模式常用命令:

格式:地址定界+编辑命令

地址定界

:#  跳到第#行

:#,#    第左侧第#行,到右侧第#行;2,5表示第2到第5行

:#,+#  从左侧第#行,加上右侧#的行;2,+3表示第2到5行

:.   当前行

$       最后一行

%      全文,相当于1,$

:/pat1/,/pat2/               从pat1匹配到的行开始,到第一次被pat2匹配到的行

:/pat1/,#   可混用

 

使用方式:后跟一个编辑命令

d       删除

y       复制

w file        将范围内行另存至指定文件中

r file 在指定位置插入匹配内容

 

查找字符

/PATTERN:从光标所在处向文件尾部查找

?PATTERN:从光标所在处向文件首部查找

n:与命令同方向

N:与命令反方向

 

s:查找并替换

格式:s/要查找的内容/替换为的内容/修饰符

修饰符:

i:忽略大小写

g:全局替换每一行的第一次出现的匹配

gc:全局替换所有匹配,每次替换前询问

查找替换的分隔符/可用其他分隔符代替:如#,@

 

命令模式

u:撤销更改

ctrl+r        恢复上一次撤销

.        重复执行上一次操作

  1. 重复执行上一次操作n次

 

8.vim的剪贴板

有26个命名剪贴板和一个无命名剪贴板,存放不同的剪切内容,可以不同会话间分享

例:”myy 表示复制光标所在行到m剪贴板

“mp 表示将m剪贴板内容粘贴

3″tyy 表示复制3行内容到t剪贴板

“tp   表示将t剪贴板内容粘贴

 

9.vim多文件模式

vim FILE1 FILE2 FILE3

:next     下一个文件

:prev     上一个文件

:first      第一个文件

:last       最后一个文件

:wall      保存所有文件

:qall       退出所有

:wqall   保存退出

 

单文件的窗口分隔:方便对照文件内容

ctrl+w放开后按s           水平分割

ctrl+w放开后按v          垂直分割

ctrl+w放开后按q          取消相邻窗口

ctrl+w放开后按w                取消全部窗口;与:wqall相同

QQ图片20180408193404

 

三、定制vim的工作特性

扩展命令模式下执行:

set number      添加行号

set nonumber 取消行号

此操作仅临时有效,退出重进vim后,操作失效,要想永久保存vim的工作特性,需写入配置文件中

 

配置文件:使vim工作特性永久有效

全局:/etc/vimrc

个人:~/.vimrc

 

其他一些常用vim特性命令:

忽略大小写

set ic        忽略大小写

set noic 取消忽略大小写

自动缩进

set ai        自动和上一行对齐

set noai   取消对齐

文件格式转换

set fileformat=unix         Windows文件转换Linux文件

set fileformat=dos Linux文件转换Windows文件

设置光标所在行下划线

set cursorline           启用

set no cursorline     禁用

复制时保留格式:

set paste          启用

set nopaste              禁用

 

查看全部已配置的vim工作特性

:set        显示全部已配置set

:help     查看帮助

 

 

四、文本处理常用命令

cut            按列抽取文本

-d     指定分隔符

-f      指定第几列

–output-delimiter=’ ‘      指定单引号中符号作为分隔符

diff           比较两个文件直接的差别,后跟file1,file2

-u

head

-n     显示头n行

-c     显示头n个字节

tail

-n     显示最后n行

-c     显示最后n个字节

-f      跟踪文本的变化(追加内容),可写为tailf

-F     跟踪文件名

sort          排序

-t      指定分隔符(类似cut -d)

-k     指定第几列(类似cut -f)

-n     以数字排序

-r      倒序排列

-f      忽略大小写

-u     删除重复的行压缩到一行

-R     随机排序

paste                合并两个文件同行号的列到一行

-s      合并两个文件按一行显示

-d     指定分隔符,类似cut -d的用法

grep         基于行过滤的文本过滤工具(grep文本处理三剑客之一)

-v     显示不被匹配到的行

-i      忽略字符大小写

-n     添加匹配到的行的行号

-c     统计被匹配到的行数

-o     仅显示匹配到的字符

-q     静默模式

-A#   包含此匹配行和后#行

-B#   包含此匹配行和前#行

-C#   包含此匹配行和前后#行

-e     实现多个匹配字符的或者(or)关系 -e a -e b:a或b

-w    匹配整个单词,数字、字母、下划线都算单词一部分

-r      递归目录

-E     使用ERE,扩展的正则表达式

-F     相当于fgrep

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95476

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班