首页 > 代码库 > linux学习笔记--vim程序编辑器

linux学习笔记--vim程序编辑器

1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器。

2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim

3,学习vim的重要性

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

   (2)很多软件的编辑接口都会主动调用vi

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

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

4,vi与vim区别

   它们都是多行模式编辑器

   vim是vi的高级版本,vim完全兼容vi的敏玲。还加入很多额外的功能。具体没使用过。

5,vi的基本使用

    vi一般分为3种模式,一般模式、编辑模式与命令行模式

     (1)一般模式

              以vi打开一个文件就直接进入了一般模式(默认模式),在这个模式中,你可以使用上下左右按键来移动光标,可以删除字符合删除正行,也可以复制、黏贴

     (2)编辑模式

             在一般模式中按下“i,l,o,O,a,A,r,R”任何一个字母后会进入编辑模式,

            在这个模式下,按下这些按键时,界面左下方会出现INSERT或REPLACE的字样,此时可以编辑,

            退出按【Esc】键,退回一般模式

     (3)命令行模式

             在一般模式下,输入“:、/、?”任何一个字符,就可以将光标移动到最下面的那一行。

             在这个模式下,可以提供查找、读取、保存、大量替换字符、离开vi、显示行号等操作。

             退出按【Esc】键,退回一般模式

注意:编辑模式和命令行模式之间不可互相切换,tab键所得到的结果与空格符所得到的结果是不一样的。

6,按键说明

第一部分:一般模式可用的按钮说明,光标移动、复制黏贴、查找替换

   (1)移动光标的方法

          h或向左箭头键         光标向左移动一个字符

          j或向下箭头键          光标向下移动一个字符

          k或向上箭头键         光标向上移动一个字符

          l或向右箭头键          光标向右移动一个字符

         注:也可以3j向下移动3次。组合键

        【Ctrl】+【f】           屏幕向下移动一页,相当于【Page Down】

        【Ctrl】+【b】          屏幕向上移动一页,相当于【Page Up】

        【Ctrl】+【d】          屏幕向下移动半页

        【Ctrl】+【u】          屏幕向上移动半页

          +                             光标移动到非空格的下一行

         -                          光标移动到非空格的上一行

          n<space>               20空格,向后移动20个字符距离

          0或者【Home】      移动这一行的最前面字符处

          $或者【End】          移动到这一行的最后面的字符处

          H                             光标移动到当前屏幕的第一行的第一个字符

          M                            光标移动到当前屏幕的中间那一行的第一个字符

          L                              光标移动到当前屏幕的最下方那一行的第一个字符

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

         nG                            光标移动到第n行

         gg                            光标移动到首行,相当于1G

         N【Enter】              光标向下移动n行

         /word                      向下寻找一个名为word的字符串

        ?word                     向上寻找一个名为word的字符串

         n                              代表重复前一个查找的操作

         N                              与n相反,为反向进行前一个查找操作

          注:/word配合n及N非常有帮助

         :n,ms/word1/word2/g    在第n与m行之间寻找word1字符串,并将word1替换为word2

         :1,$s/word1/word2/g     从第一行到最后一行查找word1字符串,并将该字符串替换为word2

         :1,$s/word1/word2/gc    从第一行到最后一行查找word1字符串,并将该字符串替换为word2,且替换前让用户确认是否需要替换

   (2)删除、复制、黏贴

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

           nx                          连续向后删除n个字符

           dd                         删除光标所在的那一行

           ndd                       删除光标所在的向下n行

           d1G                       删除光标所在到第一行的所有数据

           dG                         删除光标所在到最后一行的所有数据

           d$                          删除光标所在到该行的最后一个字符

           d0                          删除光标所在在该行的第一个字符

           yy                          复制光标所在的那一行

nyy                        复制光标所在的向下n行

           y1G                        复制光标所在行到第一行的所有数据

           yG                          复制光标所在行行到最后一行的所有数据

           y0                           复制光标所在的那个字符到该行行首的所有数据

           y$                           复制光标所在的那个字符到该行行尾的所有数据

           p,P                        p为将已复制的数据在光标的下一行黏贴,P为将已复制的数据在光标的上一行黏贴

    (3)移动光标的方法

           J                             将光标所在行与下一行的数据结合成同一行

           c                             重复删除多个数据,例如向下删除10行,10cj

           u                             复原前一个操作

         【Ctrl】+r                 重做上一个操作

           注:u和【Ctrl】+r组合常用

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

          i,I                             i从光标所在处插入,I为光标所在行的第一个非空格处插入

          a,A                           a为从光标所在的下一个字符处开始插入,A为光标所在行的最后一个字符处开始插入

          o,O                          o为光标所在下一行插入一行,O为光标所在行的上一行插入一行

          r,R                           r只会替换光标坐在的哪一个字符一次,R会一直替换光标所在的文字,知道按下【Esc】

        【Esc】                     退出编辑模式,回到一般模式

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

      (1)命令行的保存、离开

          :w                        保存数据

           :w!                        强制写入文件,保存

           :q                          离开vi

           :q!                         曾修改过,又不想保存,使用。强制退出vi

           :wq                        保存且退出vi

           ZZ                         若文件没有更改,则不保存离开,若文件已经被更改,则保存后离开

           :w[filename]          将编辑的数据保存为另一个文件

           :r[filename]            在编辑的数据中,读入另一个文件的数据

           :n,m w[filename]    将n到m的内容保存成filename文件

           :!command             暂时离开vi到命令模式下执行command的显示结果

          :set nu                  显示行号

           :set nonu               取消显示行号

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

(1 使用vim编辑时候,vim会在编辑的文件的目录下再新建一个名为.filename.swp的文件。

例如:

[root@localhost test]# vim vimtest.txt

                                             按下【Ctrl】+z,vim被丢到后台去执行。

[1]+  Stopped                 vim vimtest.txt

[root@localhost test]# ls -a

.  ..  .vimtest.txt.swp

模拟断线

[root@localhost test]# kill -9 %1


[1]+  Stopped                 vim vimtest.txt


[root@localhost test]# ll -a

total 12

drwxr-xr-x. 2 root root 4096 Apr 19 15:23 .

drwxrwxrwt. 9 root root 4096 Apr 19 15:23 ..

-rw-------. 1 root root 4096 Apr 19 15:23 .vimtest.txt.swp

断线后.vimtest.txt.swp文件还存在。再次编辑时候,可以打开.vim.test.txt文件继续编辑

说明:由于vim的工作被不正常中断,导致暂存盘无法通过正常流程结束,所以暂存文件不会消失,而继续保留下来。可以再次编辑。

(2)再次编辑会出现如下状态

[root@localhost test]# vim vimtest.txt

wKioL1N4eL6h3mq_AAJ4haGfUIE997.jpg

暂存盘的文件,可能有2种情况:

【1】可能有其他人或程序同时在编辑这个文件

      解决方法:找到正在编辑文件的人员,请他将vim的工作结束,然后再继续处理

                如果只是查看,而不需要编辑,选择o,“[O]pen Read-Only,只读模式。

【2】在上一次vim时,可能因为某些原因导致vim中断

      解决方法:如果上一次vim时未保存,按下R,使用[R]ecover的选项,载入.vimtest.txt.swp的内容,离开后还得手动删除.vimtest.txt.swp文件,避免每次打开这个文件都会出现这样的警告

                如果确定这个暂存文件没有用,可以按下D,选择【D】elete it 这个选项,直接删除这个.vimtest.txt.swp文件,并且会建立新的swp文件

8,vim的功能

9,块选择  (自己找练习题练习下)

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

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

  【ctrl】+v 块选择,可以用长方形的方式选择数据

  y  将反白的地方复制起来

  d  将反白的地方删除

10,多文件编辑

  :n  编辑下一个文件

  :N  编辑上一个文件

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

11,多功能窗口

   :sp [filename] 打开一个新窗口,如加filename,表示在新窗口打开一个新文件,否则表示俩个窗口为同一个文件内容

   【Ctrl】+w+j   光标移至下方的窗口

   【Ctrl】+w+向下键 光标移至下方的窗口

   【Ctrl】+w+k   光标移至上方的窗口

   【Ctrl】+w+向上键  光标移至上方的窗口

   【Ctrl】+w+q   结束离开

12,vim的环境设置与记录 ~/.vimrc,~/.viminfo

   ~/.vimrc为环境设置值的文件

   ~/.viminfo为操作记录的文件

vim环境设置参数

:set nu 就是设置行号

:set nonu 取消显示行号

:set hlsearch  查找字符串反白,高亮

:set nohlsearch 取消高亮

:set autoindent  表示自动缩排

:set noautoindent 取消自动缩排

:set backup  自动备份文件

:set ruler 显示右下角的一些状态说明

:set showmode  显示--INSET--之类的字在左下角的状态栏

:set backspace=(0,1,2) 按下i进入编辑模式后,可以利用退格

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

:set 显示与系统默认值不同的设置参数

:syntax on 依据程序相关语法显示不同颜色

:syntax off  关闭

:set bg=dark 可用显示不同的颜色色调,默认是light

:set bg=light

可以修改/etc/vimrc   或者~/.vimrc






本文出自 “完美式_開始” 博客,请务必保留此出处http://7184803.blog.51cto.com/7174803/1413295