zoukankan      html  css  js  c++  java
  • Linux系统VIM编辑器管理

    在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定了,与微软的 Windows 系统不同的是,如果你用惯了 Microsoft Word 或 Corel Wordperfect 的话,那么除了 X window 里面的图形接口编辑程序,用起来尚可应付外,在 Linux 的文本模式下,会觉得文书编辑程序都没有窗口接口来的直观与方便.


    ♥ 文章声明 ♥
    该系列文章部分文字描述,整理于以下文献,化繁为简.
    《鸟哥的Linux私房菜 (基础学习篇 第三版)》 - 作者:鸟哥
    《Linux就该这么学》 - 作者:刘遄


    VIM 有哪些特点呢 ?
    1.所有的 Unix Like 系统都会内建 VIM 文本编辑器,其他的文书编辑器则不一定会存在.
    2.很多个别软件的编辑接口都会主动呼叫 VIM (例如未来会谈到的 crontab, visudo, edquota 等指令)
    3.VIM 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计.
    4.因为VIM程序简单,并可自定义按键,从而编辑速度相当快速,在程序设计领域大有作为.

    那么什么是 VIM 呢 ?

    其实你可以将VIM视作VI的升级版,VIM可以用颜色或底线等方式来显示一些特殊的信息,简单的来说VI是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方.VIM则可以说是程序开发者的一项很好用的工具,就连VIM的官方网站自己也说VIM是一个『程序开发工具』而不是文字处理软件,因为VIM里面加入了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复制等等.这对于我们在 Linux 上面进行一些配置文件的编辑时,是很好的一项功能.

    那 VIM 的工作模式有哪些呢 ?

    基本上VI/VIM共分为三种模式,分别是命令模式,输入模式,末行模式.
    命令模式: 以 VI/VIM 打开一个文件就直接进入命令模式(这是默认的模式),在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文件内容,也可以使用『复制、贴上』来处理你的文件数据.

    编辑模式: 在输入模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式,注意,通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑.而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式.

    末行模式: 在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行,在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 VI/VIM、显示行号等等的动作则是在此模式中达成的.


    VI/VIM模式按键

    ◆命令模式◆

    以 VI/VIM 打开一个文件就直接进入命令模式(这是默认的模式),在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文件内容,也可以使用『复制、贴上』来处理你的文件数据.

    操作类型 操作键(命令) 功能(作用)
    光标方向移动 ↑ ↓ ← → 上、下、左、右
    字母移动 H j k l 上、下、左、右
    翻页 Page Down或Ctrl+F(大) 向下翻动一整页内容
    Page Up或Ctrl+B(大) 向上翻动一整页内容
    行内快速跳转 Home键或“^”、数字“00” 跳转至行首
    End键或“$”键 跳转到行尾
    行间快速跳转 1G或者gg 跳转到文件的首行
    G 跳转到文件的末尾行
    #G 跳转到文件中的第#行
    删除 x或Del 删除光标处的单个字符
    dd 删除当前光标所在行
    #dd 删除从光标处开始的#行内容
    d^ (d shift+6) 删除当前光标之前到行首的所有字符(不包含光标)
    d$ 删除当前光标处到行尾的所有字符(包含光标)
    复制 yy 复制当前行整行的内容到剪贴板
    #yy 复制从光标处开始的#行内容
    粘贴 p 将缓冲区中的内容粘贴到光标位置处之后(下一行)
    P(大) 粘贴到光标位置处之前(上一行)
    替换 r 替换光标所在字符
    R 从光标出开始替换,按ESC键结束
    /word /word 从上而下在文件中查找字符串“word”
    ?word ?word 从下而上在文件中查找字符串“word”
    n n 定位下一个匹配的被查找字符串
    N N 定位上一个匹配的被查找字符串
    u u 按一次取消最近的一次操作,多次重复按u键,恢复已进行的多步操作
    U U 用于取消对当前行所做的所有编辑
    Shift+zz或者ZZ Shift+zz(小)或者ZZ 保存当前的文件内容并退出vi编辑器

    ◆编辑模式◆

    在输入模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式,注意,通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑.而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式.

    操作类型 操作键(命令) 功能(作用)
    光标后插入 a 在光标所在字符后插入
    光标行尾插入 A 在光标所在行尾插入
    光标前插入 i 在光标所在字符前插入
    光标后插入 I 在光标所在行行首插入
    光标下插入 o 在光标下插入新行
    光标上插入 O 在光标上插入新行

    ◆末行模式◆

    在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行,在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 VI/VIM、显示行号等等的动作则是在此模式中达成的.

    功能 命令 备注
    保存文件 :w 保存所做操作
    :w /root/newfile 另存为其它文件
    退出vi :q 未修改退出
    :q! 放弃对文件内容的修改,并退出vi
    :wq 保存文件退出
    删除多行文件 :n,nd 删除从n-n的行
    :e ~/install.log 打开新的文件进行编辑
    :r /etc/filesystems 在当前文件中读入其他文件内容
    :!命令 直接执行命令打印到屏幕上
    :r!命令 导入命令结果到光标所在处
    行号显示 set nu 在编辑器中显示行号
    :set nonu 取消编辑器中的行号显示
    颜色开关 :syntax off 关闭颜色显示
    :syntax on 开启颜色显示
    正则替换 /old/new/ 将当前行中查找到的第一个字符“old” 串替换为“new”
    /old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
    :#,#s /old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
    :% s /old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
    /old/new/cg 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

    VI/VIM拓展功能

    ◆VIM快捷命令◆

    实例1:使用VIM配置快捷键,当输入Ctrl+p快捷键时,执行在行首添加#号.

    #^P 不能手动输入,需要执行ctrl+V+P 来定义或者ctrl+V,然后ctrl+P.
    
    :map ^P I#<esc>
    
    此时在指定行按下Ctrl+p 既可以实现在开头添加注释.
    

    实例2:使用VIM配置快捷键,当输入Ctrl+b快捷键时,执行调到行首,并删除一个字符.

    #^P 不能手动输入,需要执行ctrl+V+b 来定义或者ctrl+V,然后ctrl+b.
    
    :map ^B ^x
    
    此时在指定行按下Ctrl+b 既可以实现在开头删除一个字符.
    

    实例3:使用VIM配置快捷键,当输入ab快捷键时,将myweb替换成mkdirs.com.

    :ab myweb mkdirs.com
    

    ◆VIM块选择命令◆

    块选择命令,可以实现批量的选择一块数据进行操作.

    参 数 说 明
    v 字符选择,光标经过的地方反白
    V 行选择,光标经过的地方反白
    Ctrl+v 块选择,一次选择一个格
    shift+v 行选择,一次选择一行数据
    y 将反白的地方复制起来
    d 将反白的地方删除

    ◆VIM多窗口编辑◆

    sp命令,可以编辑多窗口,我们可以实现多窗口之间的编辑和切换功能.

    参 数 说 明
    :sp filename 在VIM中打开一个新窗口
    Ctrl+w+j 切换到上一个窗口
    Ctrl+w+k 切换到下一个窗口

    ◆VIM环境变量配置◆

    VIM常用环境变量的说明,和常用参数的配置.

    参 数 说 明
    :set nu 设置与取消编号
    :set nonu
    :set hlsearch 设置与取消高亮字体
    :set nohlsearch
    :set backup 是否自动备份
    :set nobackup
    :set cursorline 给指定行添加下划线
    :set all 显示所有环境变量
    :set 显示与系统默认值不同的参数
    :syntax on 开启语法高亮
    :set bg=dark 字体高亮显示
    :set bg=light 字体低亮度显示

    实例1:通过写入配置文件 ./vimrc实现配置文件的永久生效,在这里永久添加一个下划线.

    [root@localhost ~]# vim .vimrc
    [root@localhost ~]# cat .vimrc 
    set cursorline
    
    文章出处:https://www.cnblogs.com/LyShark/p/10221779.html
    版权声明:本博客文章与代码均为学习时整理的笔记,博客中除去明确标注有参考文献的文章,其他文章 [均为原创] 作品,转载请 [添加出处] ,您添加出处是我创作的动力!

    如果您恶意转载本人文章并被本人发现,则您的整站文章,将会变为我的原创作品,请相互尊重 !
    转载规范 点击阅读 如果您转载本人文章,则视为您默认同意此规范约定。
  • 相关阅读:
    mysql 行转列 列转行
    JAVA中使用JSch库实现SSH功能
    sqlmap详解
    Max+Decode的妙用.(紀錄分組).
    apache mina sshd ,纯java的ssh工具包
    Nginx 日志分析及性能排查
    PHP在Apache中两种工作方式的区别(CGI模式、Apache 模块DLL)
    如何将本地做好的网站挂到服务器上
    Drupal
    程序员的十种级别,
  • 原文地址:https://www.cnblogs.com/LyShark/p/10221779.html
Copyright © 2011-2022 走看看