首页 > 代码库 > vi文本编辑器使用总结

vi文本编辑器使用总结

Linux: 使用文本文件来保存配置文件

Linux编辑器:行编辑器:sed  全屏编辑器:nano, vi, vim

文本编辑器:编辑ASCII字符,而非字符处理软件 如 emacs, vi

vi: Visual Interface

全屏文本编辑器, nano

模式化的编辑器 moduler

vim: vi improved

vi的模式:

 编辑模式:键盘操作通常被解析为编辑命令;

 输入模式:输入模式;

 末行模式:vim的内置的命令行接口,执行vim内置命令

 编辑模式-->输入模式

i: 在当前光标所在处输入;

I: 在当前光标所在行的行首输入;


a: 在当前光标所在处后面输入;

A:在当前光标所在行的行尾输入;


o: 在光标所在行的下方新增一个空白行输入;

O:在光标所在行的上方新增一个空白行输入;


输入模式-->编辑模式:

按 ESC


编辑模式-->末行模式:

按 :

末行模式-->编辑模式:

ESC, ESC



vim命令的使用格式:

 vim [options] /path/to/file...


 退出

 :q!, 不保存并退出

 :wq, 保存并退出

 :x, 保存并退出

 编辑模式:ZZ, 保存退出

 打开:

 多文件跳转:

 :next

 :prev

 :first

 :last


 分割窗口打开多个文件:

 -o: 水平分割

 Ctrl+w, 左右箭头键

 -O:垂直分割

 Ctrl+w, 上下箭头键


 +[#]: 打开文件后直接让光标处于第#行的行首; #号省略为到末行。


光标移动:

 单字符移到:h: 左 l: 右 j: 下 k: 上


 单词间移动:w: 下个单词的词首;b: 当前或前一个词的词首 e: 当前或下一个词的词尾


 行内移动:0: 绝对行首 ^: 第一个非空白字符 $: 绝对行尾


 句子间移动:) (


 段落间移动:} {


 行间移动:#G G:最后一行 1G: 第一行


编辑操作:

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

 #x: 删除光标所在处开始向后的#个字符;

 r: 替换光标所在处的字符


 d: 删除命令

 结合各光标跳转命令使用

 dd: 删除一行

 #dd:删多行 


末行模式:范围定界

 start,end: 

 10,19

 10,+9

 .:表示当前行

 $:最后一行

 .,$-2 当前行到倒数第三行

 /pat1/,/pat2/: 起始处为光标所在行,

 :% 全文 

 c: 改变

 cc:

 #cc:


 y: yank, 复制

 yy

 #yy


 p: paste, 粘贴

 复制或删除的是整行

 p: 粘贴在光标所在行的下方

 P: 粘贴在光标所在行的上方


 复制或删除的为非整行

 p: 粘贴在光标所在字符的后面

 P:粘贴在光标所在字符的前面


撤消编辑:u: undo #u: 


撤消此前的撤消:Ctrl+r


重复执行此前的命令:.



翻屏:

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

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

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

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

Enter: 下一行

k: 上一行


查找:

/keyword 向文件尾部搜索

?keyword 向文件首部搜索

n: 下一个

N: 上一个


vim可视化模式:

v: 按光标走过的区域选择

V: 选择矩形块


打开多个文件,分窗口:

vim -o

vim -O

Ctrl+w, arrow


分割当前窗口:

Ctrl+w, s

Ctrl+w, v


窗口属性的定义:

:set nu 设置行号

:set nonu 取消行号设置


:set ai 设置autoindent缩进

:set noai 取消自动进设置


:set ic ignore-case搜索时忽略大小写

:set noic 取消忽略大小写设置


显示对应的括号

:set sm (show match)

:set nosm


语法高亮:

:syntax on

:syntax off


搜索高亮:

:set hlsearch

:set nohlsearch


vim的配置文件:

全局:/etc/vimrc

个人:~/.vimrc


查找替换:

:地址定界s/查找模式/替换为的内容/gi

g: global

i: ignore-case


:地址定界s@查找模式@替换为的内容@gi


&: 用于在替换为的内容部分中引用前面匹配到的所有内容;


练习:

1、复制/etc/grub.conf至/tmp目录,删除/tmp/grub.conf文件中行首的空白符;

%s@^[[:space:]]\{1,\}@@g


2、复制/etc/rc.d/rc.sysinit至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行,行首加#号

:%s@^[[:space:]]\{1,\}.*@#&@


3、删除/tmp/rc.sysinit文件中以#开头且后面跟了至少一个空白字符的行的行首的#号和空白符;

:%s@^#[[:space:]]\{1,\}@@g


4、为/tmp/grub.conf文件中前三行的行首加#号; 

1,3s@^@#@g


5、将/etc/yum.repos.d/CentOS-Media.repo中enable=0一行最后的0改为1;

%s@\(enabled=\)[0-9]@\11@g


vi文本编辑器使用总结