Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39552
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-26 10:44
文章分类
文章存档

2016年(2)

2015年(10)

我的朋友

分类: LINUX

2015-03-20 17:28:17

原文地址:Vim/vi的使用总结 作者:Super_Joki

                                                       Vim/Vi简介


1、Vim/Vi 是一个文本编辑器,多适用在Linux/UNIX系统;  

   早期是Vi,现在增强版是Vim,但使用的还是Vi的操作。


2、Vim/Vi 没有菜单,只有命令。


3、作用:建立、编辑、显示文本文件。


                                                       常用操作


1、Vi有三种工作模式:命令模式插入模式编辑模式

                                 Insert     Edit        

2、格式:vi + 文件名                

                       说明:如果是已存在此文件,表示打开;如果不存在此文件,表示新建。

3、三种模式的相互切换

       3.1        默认进入"命令模式"


       3.2        插入模式:        在命令模式下-->进入"插入模式",输入 i                注:一般下面会提示有--INSERT--

                                              退出"插入模式",按ESC键                

                               常用选项:aio

                                               a        在光标后插入文本,         A        在本行行末插入文本;

                                               i        在光标前插入文本,         I        在本行开始插入文本;

                                               o        在光标下插入新行,         O        在光标上插入新行;

                                               

       3.3        编辑模式:        在命令模式下-->进入"编辑模式",输入        

                                                     退出"编辑模式",回车        (其实执行完命令也即进入命令模式了)

                               常用选项:set number        使文件显示行号(number也可简写成nu)        


       3.4        命令模式常用命令


                 ***定位***

                       h        (等同于方向左键)左移一个字符

                       j        (等同于方向下键)下移一行

                       k        (等同于方向上键)上移一行

                       l        (等同于方向下键)下移一行

                       $         移至行尾        

                       0         移至行首        


                       H         移至屏幕上端(High)

                       M         移至屏幕中央(Middle)

                       L         移至屏幕下端(Low)


                       :set nu         设置行号        //nu是number的简写

                       :set nonu       取消行号        //no-number


                       gg               到第一行                

                       G                到最后一行                


                       nG               到第n行                //n是自己输入的行号

                       :n              到第n行                //与nG作用一样



                 ***删除***

                       x                  删除光标所在处字符

                       nx                 删除光标所在处后n个字符

                       dd                 删除光标所在行

                       ndd                删除光标后的n行                //注:光标所在的行也算一行

                       D                  删除光标所在处到行尾

                       dG                 删除光标所在行到末尾的内容

                       :n1,n2d           删除指定范围的行,将n1行到n2行删除

                               eg,:12,15d        //作用是删除12到15行

                       

                 ***复制/剪切***

                       yy               复制当前光标所在行

                       nyy                复制当前光标所在以下n行

                       dd                 剪切当前光标所在行(也可以用作删除)

                       ndd              剪切当前光标所在行以下n行        //注:光标所在的行也算一行

                       p                粘贴在当前光标所在行下


                  ***替换/取消***

                       u              返回上一次操作(无限制的返回,前提没有在中途保存)

                       r                取代光标所在处字符

                       R                从光标所在处开始替换字符,按Esc结束,不然一直替换后面的字符



                 ***搜索/替换***

                       /字符串                        从光标处开始搜索要查找的字符串

                       n                              (next)搜索指定字符串时,按n键跳到下一个符合的字符串

                       

                     :%s/old/new/g                全文中的字符串old全部替换成new,注意格式,只需改old,new,其他一样

                      :n1,n2s/old/new/g         将n1行到n2行中所有的old都替换成new

                     :s/old/new/g                将光标所在行的所有old都替换成new

                                                                                                               

       3.5        保存/退出 :        在命令模式下-->输入  :w                保存(不退出)

                                                              :w + 文件路径    另存为

                                                                       eg::w /work/dir/newfile    注:把当前文件另存为newfile

                                                             :wq                保存并退出

                                                              :q                退出(用于没有未更改)

                                                              :q!              退出不保存(用于文件已更改)

4、常用快捷键

                       shift + zz        保存并退出        (在命令行模式下)        


5、小技巧

       :r + 要导入的文件路径                                作用:可以把文件导入到该文件所指光标处

       :! + 进行一些非Vi指令的操作。 如:ls查看其他目录,date查看日期,等一系列文件操作命令

       :r + !+ 进行一些非Vi指令的操作结果                作用:其他指令的操作结果写入到当前文件所指光标处 (不错!)

                       eg:r !date        //把当前查询的日期写入到当前文件


6、多文件编辑

       使用命令vim name1 name2 name3...(各个文件名之间用空格隔开)可以同时打开多个文件。

               :n                编辑下一个文件;

               :N                编辑上一个文件;

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


7、块选择

       选取部分内容进行复制粘贴删除很方便(不是以行为单位操作)

       v        字符选择(输入v后,下面窗口提示"可视",也即选中了第一个字符,按方向左右键继续选择)

       V        行选择

       y        复制选中的内容

       p       粘贴选中的内容

       d        删除选中的内容


8、Vim/Vi的配置(一)(让其显示行号,tab键=4)  

       方法:1)在用户目录下(cd/或者cd~都能进到用户目录)/home/usr

             2)建立一个vimrc的文件(最好隐藏)

                   vi .vimrc

             3)进行编辑,输入内容

                       set nu                        //作用:让Vi/Vim打开的文件都能显示行号

                       set tabstop=4                //作用:在Vi/Vim编辑器,让tab跳至4个间距

            4)保存退出

   Vim/Vi的配置(二)(若方向键、Backspace键使用时出现乱码)

               编辑:/etc/vim/下的vimrc.tiny文件(在root账户下)

       方法:1) 用vi打开vimrc.tiny

                       

                          将"compatible"改成"nocompatible"非兼容模式就可以解决方向键变ABCD的问题了

                 2)解决Backspace键问题:

                       

                 补充一句: set backspace=2  

               3)保存退出,之后无论哪个用户都可以正常使用

       注:如果只想改动该用户下的配置,同上可以在该用户目录下建一个.vimrc

                加下面两句语句:set nocompatible          //以非兼容模式工作  

                                set backspace=2  

                                保存退出

阅读(1611) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~