vim程序编辑器

      vi是一个比较通用的文本编辑器,在所有linuxdistribution上都会存在vi这个编辑器。而vim是高级版的vi,vim不但可以用不同颜色显示文件内容,还能进行诸如shell脚本,C等程序的编辑功能。

vim相对其他编辑器的优点:

      1、所有的UNIX Like系统都会内置vi文本编辑器,其他文本编辑器不一定存在

      2、很多软件的接口都会主动调用vi

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

      4、程序简单,编辑速度相当快速

vi的使用

      vi分为三个模式:一般模式,编辑模式,命令行模式,其转换关系如下图:

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

      注意:在编辑模式下,tab键和空格的结果是不一样的!

vi按键说明(仅列举常用命令)

第一部分:一般模式可用的按键说明,光标移动,复制粘贴,查找替换等。

移动光标的方法

h或向左箭头键

光标向左移动一个字符

j或向下箭头键

光标向下移动一个字符

k或向上箭头键

光标向上移动一个字符

l或向右箭头键

光标向右移动一个字符

若要连续多次移动,可以用数字加方向的组合键,如30↓

Ctrl+f

屏幕向下移动一页,相当于page down

Ctrl+b

屏幕向上移动一页,相当于page up

0或home

移动到这一行最前面字符处

$或end

移动到这一行最后面字符处

G

移动到这个文件的最后一行

nG

移动到文件的第n行

gg

移动到文件的第一行,相当于1G

n[enter]

n为数字,光标向下移动n行

查找与替换

/word

向下查找word字符串

?word

向上查找word字符串

n

这个是英文按键,重复上一个查找操作

:n1,n2s/word1/word2/g

在n1与n2行之间查找word1并替换为word2

:1,$s/word1/word2/g[c]

从第一行到最后一行查找word1并替换为word2【询问是否替换】

删除,复制与粘贴

x,X

在一行字当中,x为向后删除一个字符,X为向前删除一个字符

nx

连续向后删除n个字符

dd

删除光标所在的一整行

ndd

向下删除n行

yy

复制当前行

nyy

向下复制n行

p,P

p为在光标下一行粘贴,P为在光标上一行粘贴

u

复原上一个操作

Ctrl+r

重做上一个操作

.(小数点)

重复上一个操作

第二部分:一般模式切换到编辑模式可用的按键说明

i,I

进入插入模式,i为从光标目前所在处插入,I为在当前行的第一个非空格字符处开始插入

a,A

进入插入模式,a为从光标目前所在下一个字符处插入,A为在当前行的最后一个字符处开始插入

o,O

进入插入模式,o为从光标目前所在行的下一行插入,O为在当前所在行的上一行插入新的一行

r,R

进入替换模式,r只会替换光标所在的那一个字符一次,R会一直替换光标所在处的字符,esc停止

esc

退出编辑模式

第三部分:一般模式切换到命令行模式的可用按键

:w

将编辑的数据写入硬盘文件中

:q

离开vi

:wq

保存后离开

ZZ

若未变动,则直接离开,若有变动,保存后离开

vim环境的更改

:set nu

显示行号

:set nonu

不显示行号

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

      当使用vim编辑时,vim会在被编辑的文件目录下创建一个名为.filename.swp的文件,当编辑因意外情况未能正确编辑时,重新打开文件便可通过这个文件继续上次未保存的操作。

重新打开文件时会出现以下问题:

      一、可能有其他人或程序同时在编辑这个文件

             1、找到另外那个人或程序,请他结束该vim的工作,然后你在继续处理

             2、若只是查看文件内容而不进行更改,那么可以选择打开成为只读文件,即输入o即可

      二、在前一个vim环境中,可能因为某些不明原因导致vim中断

             1、如果之前的操作尚未保存,则可通过R 将暂存文件的内容导入,再次进行保存,不过在保存之后必须要将暂存文件删除,系统并不会自动删除该暂存文件

              2、如果确定该暂存文件是没有用的,则可用输入D直接将暂存文件删除掉

vim的功能

vim的块选择(Visual Block)

在一般模式下:

V

字符选择,会将光标经过的地方反白选择

v

行选择,会将光标经过的行反白选择

Ctrl+v

块选择,可以用长方形的方式选择数据

y

将反白的地方复制起来

d

将反白的地方删除

p

粘贴

vim的多文件编辑

     vim file1 file2 …

     :n    编辑下一个文件

     :N    编辑上一个文件

     :files 列出目前这个vim打开的所有文件

vim的多窗口功能

:sp[filename]

打开一个新窗口,如果写上filename则打开新文件,否则打开同一个文件(同步显示)

ctrl+w+j(↓)

移动到下一个窗口

ctrl+w+k(↑)

移动到上一个窗口

ctrl+w+q

关闭光标所在的窗口

vim常用命令示意图:

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

使用vim的其他注意事项

DOS与Linux的断行字符

      在DOS中使用的断行字符为^M$,我们成为CR与LF,而Linux下的断行字符仅有$,即LF;

      若不进行格式的转换,则有可能造成程序无法正常运行的问题,而转换的命令如下:

          dos2UNIX [-kn] file [newfile]

          UNIX2dos [-kn] file [newfile]

          -k 保留该文件原本的mtime时间格式

          -n 保留原本的旧文件,将转换后的内容输出到新文件

语系编码转换

     iconv --list

     iconv -f 原本编码 -t 目标编码filrname [-o newfile]

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

     -f  from  -t to

     -o file:如果要保留原本的文件,那么使用-o newfile可以建立新的编码文件 

你可能感兴趣的:(LINUX)