第10章 vim程序编辑器

10.1 vim

Vim是一种命令行界面的文本编辑器,是高级版的vi,在linux中可以使用vim来编辑linux参数配置文件。vim不但可以用不同颜色显示文字内容,或用颜色底线等方式显示一些特殊信息,还能够进行诸如shell脚本,C等程序编辑功能,也可以使用vim来编辑网页文章。另外,很多软件的编辑接口都会主动调用vi(edquotavisudo等命令)vim里面加入了许多额外的功能,例如支持正则表达式的查找架构,多文件编辑,块复制等。

10.2 vi的使用

10.2.1 三个模式

 

10.2.2 按键说明

 第10章 vim程序编辑器_第1张图片

10.2.3 一个案例练习

1,新建目录/tmp/vitest并复制文件man.config到此目录下,用vi读取:


2,进入vi编辑环境后,进行:set nu:50,100s/man/MAN/gc/bzip2u等操作,最后输入:q!强制离开不存储。

10.2.4 vim的保存文件,恢复与打开时的警告信息

当系统因为某些原因突然断电或死机时,需要我们将未保存的数据救回来,vim有这样的恢复功能,在vim所编辑的目录下会新建一个.filename.swp的文件,如上节的man..config操作就在文件.man.config.swp当中。

输入vim man.config,进入vim的一般模式,之后Crtl + z,使vim丢到后台执行,使用kill停止vim的工作。

 

由于暂存文件.man.config.swp的关系,vim判断你的文件可能会有问题,如下,1.可能其他用户也在编辑这个文件;2,可能一些不明原因导致了vim中断。

 

6个可用按钮的作用:O:只读该文件而并不编辑该文件;E:编辑文件,但并不载入暂存文件;R:加载暂存文件并自行删除;D:删除暂存文件并不载入;Q:离开vimA:忽略编辑行为,离开vim

 

10.3 vim的功能

 

 由于man.config是系统规划的配置文件,因此vim会进行语法检验,所以你会看到界面内主要为深蓝色,切身蓝色那一行是以批注符号(#)为开头。

 

10.3.1 块选择(Visual Block

V:字符选择;v:行选择;Ctrl+v:长方形块选择;y:将前三个v操作选择的反白部分复制起来;d将反白部分删除

vim  man.config为例,如下:

 第10章 vim程序编辑器_第2张图片

10.3.2 多文件编辑

:n编辑下一个文件;:N编辑上一个文件;:files列出目前这个vim打开的所有文件

举例:1,在/tmp/vitest目录下,进行以下操作:

cp  /etc/yum.conf  .

vim  yum.conf  man.config

 

2,使用命令“:files”查看有哪些编辑文件

3,在文件yum.conf中,先按1G到第一行,之后4yy复制前四行;输入“:n”进入man.config中,按下G到最后一行,按下‘P’粘贴,如下:

第10章 vim程序编辑器_第3张图片

4,多次按下u还原操作,最后按下q离开vim多文件编辑器。

10.3.3 多窗口编辑

vim具有切割窗口或者是冻结窗口的功能,可将文件切割成多个窗口,只需输入“:sp”。如果想要在新窗口中启动另一个文件,就输入“:sp{filename}”。

Crtl + w + 上移/下移:使窗口进行切换

结束多窗口:光标移动到某界面,一个接一个的按“:q”。

 第10章 vim程序编辑器_第4张图片

10.3.4  vim环境设置与记录:~/.vimrc~/.viminfo

如上次查找的字符串反白情况在本次vim编辑环境中还是反白,刚打开文件时,光标停留在上次离开文件的那一行上。这是因为vim会主动将你曾经做过的行为记录到文件~/.viminfo中。

 

10.4 其他vim使用注意事项

10.4.1 中文编码问题

无法显示正常的中文,可能因为编码的问题,需考虑:

1,你的Linux默认支持的语系;2,你的终端接口(bash,与LANG有关)的语系;3,你的文件原本的编码;4,所使用的终端机软件的编码,如GNOME界面。

一般只要34编码一致,就不会出现乱码,应尽可能使用utf8统一编码。

如何修正问题:

LANG=zh_CN.big5

在终端界面工具栏中:“终端机”——》“设置字符编码”——》“中文(繁体)(BIG5)”

10.4.2 DOSLinux的断行字符

DOSWindows系统)建立的文件的特殊格式中,DOS使用的断行字符为^M$,即CRLF两个符号。而在Linux中,则是仅有LF$)这个符号。在Linux系统中执DOS文件时,可能误判程序所执行的命令内容。我们可以通过简单的命令来进行格式的转换:

dos2UINX  [-kn]  file  [newfile]

UINX2dos  [-kn]  file  [newfile]

-k:保留该文件原本的mtime时间格式;-n:保留原本的旧文件

用法:dos2UINX  -k  -n  man.config  man.config.linux

10.4.3 语系编码转换

如想将big5编码转成utf8,可直接利用iconv这个命令

iconv  --list:列出iconv支持的语系数据

-o filename:如果想保留原本的文件,则使用-o新文件名

用法:

iconv  -f 原本编码  -t 新编码  filename  [-o newfile]

iconv  -f big5  -t utf8  vi.big5  -o vi.utf8

将繁体中文的vi.utf8转成简体的utf8时,需借助中间的简体中文的gb2312,可以:

iconv  -f utf8  -t big5   vi.utf8  |  iconv  -f big5  -t gb2312  \

> iconv  -f gb2312  -t utf8  -o vi.gb.utf8

你可能感兴趣的:(linux,操作系统,vim,内核,硬件)