一、编辑模式

vim有三种编辑模式

1. i 进入文本编辑模式

2. esc 进入命令编辑模式

命令编辑状态下 dd删除整行

3. :进入底行模式

底行模式状态  输入q 退出 w保存  wq 保存并退出  !表示强制的意思  q!强制退出

二 、编辑文本常用快捷键

1、插入命令

    a  在光标后附加文本

    A  在本行行末附件文本

    i  在光标前插入文本

    I  在本行开始插入文本

    o  在光标下插入文本

    O  在光标上插入文本

2、定位命令

    h或方向左键  左移一个字符

    j或方向下键  下移一行

    k或方向上键  上移一行

    l或方向右键  右移一个字符

    $  移至行尾

    0  移至行首

    H  移至屏幕上端

    M  移至屏幕中央

    L  移至屏幕下端

    :set nu  设置行号

    :set nonu  取消行号

    gg  到第一行

    G  到最后一行

    nG  到第n行

    :n  到第n行

  3、删除命令

    x  删除光标所在的字符

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

    dd  删除光标所在行

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

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

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

  4、复制和剪切命令

    yy或者Y  复制当前行

    nyy或者nY  复制当前行一下n行

    dd  剪切当前行

    ndd  剪切当前行以下n行

    p或者P  粘贴在当前光标所在行下或行上

  5、替换和取消命令

    r  取代光标所在处的字符

    R  从光标所在处开始替换字符,按Esc键结束

    u  取消上一步操作

  6、搜索和替换命令

    /string  向前搜索指定命令,搜索时忽略大小写:set ic ,如搜索ftp:  /ftp

    n  搜索指定字符串的下一个出现位置

    :%s/被替换的字符串/替换成的字符创/g  例如把全文的ftp替换成hello  :%s/ftp/hello/g

    :n1,n2s/被替换的字符串/替换成的字符创/g  在一定的范围内替换字符串

  7、保存退出命令

    :wq 或者 ZZ 保存退出

    :q!  不保存退出

    :wq!  强行保存退出 (root或者文件的所有者)

  8、应用实例

    1)在vi中导入文件 :

      :r 文件

      如:导入/test目录下的abc.txt文件  :r /test/abc.txt

    2)在vi中执行命令:

      :!命令

      如:在vi编辑器中查看 /test目录下的文件详细信息  :!ls -l /test

      这样就不需要先退出vi再去执行命令

    3)把命令执行的结果导入到vi中:

      如:把date命令执行的结果导入到vi中

      :r !date

    4)定义快捷键

      :map 快捷键 触发的命令

      如:  :map ^P I#<ESC>  ^表示定义的快捷键,

          注意,在vi中,^这个符号是使用ctrl+v组合输入的符号,^P 在vi中的输入是ctrl+v和ctrl+p,或者ctrl+v+p

          :map ^P I#<ESC>  表示光标无论在行的哪个位置,只要按下ctrl+p就可以在行首插入#号,然后回到命令模式。I表示在行首插入文本,<ESC>表示  回到命令模式。

          :map ^E acodeartisan@gmail.com  定义了一个快捷键ctrl+e,只要按下ctrl+e就可以在光标位置输入我的邮箱acodeartisan@gmail.com,非常方便。

          再比如我们要定义一个快捷键,无论光标在行的哪个位置,只要按下ctrl+b,就可以去掉行首的#注释(实际上就是把行首的第一个字符删掉)

          :map ^B 0x  定义了一个快捷键ctrl+b。0表示移到行首,x表示删除光标所在字符。

    5)连续行注释

      :n1,n2s/^/#/g  在n1行和n2行之间的行首加入#注释

      :n1,n2s/^#//g  把n1行和n2行之间的行首的#注释去掉

 
 

Linux 文本编辑常用快捷键的更多相关文章

  1. Linux/Ubuntu常用快捷键

    问题描述:         Linux/Ubuntu常用快捷键   问题解决: +++++++++++++++++++ 全局系统 +++++++++++++++++++++ Alt + F1:相当于w ...

  2. 【Linux】一步一步学Linux——Linux系统常用快捷键(12) 待更新...

    目录 00. 目录 01. Gnome下的快捷键 02. 其它 03. 参考 00. 目录 @ 参考博客:https://blog.csdn.net/dengjin20104042056/articl ...

  3. [Linux] VIM 常用快捷键2

    如何使用MacVim 1.在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样.很多新手都会一直呆在插入模式里面,因为这样易于使用.但 ...

  4. linux系统常用快捷键

    centos 命令快捷键: 挂起:Ctrl+s 解除挂起:ctrl+q 清屏:Ctrl+l 注销或退出:Ctrl+d 命令行光标移动: Ctrl+a 移动到命令行首 Ctrl+e 移动到命令行尾 Ct ...

  5. 【Linux】一步一步学Linux——Bash常用快捷键(11)

    目录 00. 目录 01. 编辑命令 02. 搜索命令 03. 控制命令 04. 其它 05. 参考 00. 目录 @ 生活在 Bash Shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率 ...

  6. linux终端常用快捷键

    Ctrl + d       删除一个字符,相当于通常的Delete键(命令行若无任何字符,则相当于exit:处理多行标准输入时也表示EOF ) Ctrl + h       退格删除一个字符,相当于 ...

  7. Linux 终端常用快捷键

    Tab 自动补全 Ctrl+L 清屏 Ctrl+A 移动到头 Ctrl+E 移动到尾 Ctrl+左键头 左移一个单词 Ctrl+右箭头 右移一个单词 Ctrl+U 删除左边所有字符 Ctrl+K 删除 ...

  8. Linux Shell常用快捷键

    ctrl+a[A]:将光标移到命令行开头 ctrl+e[E]:将光标移到命令行结尾 ctrl+c[C]:强制终止命令执行 ctrl+u[U]:删除/剪切光标之前的所有字符 ctrl+y[Y]:粘贴ct ...

  9. Linux之常用快捷键

    tab:自动补齐命令或者路径 ESC+u:将字符小写变大写 ctrl+s:在终端中冻结stdin ctrl+q:在终端中恢复stdin ctrl+a:光标移动到行首 ctrl+e:光标移动到行尾 ct ...

随机推荐

  1. Ubuntu 16.04 LTS安装Docker

    一.安装Docker的先决条件 1.运行64位CPU构架的计算机(目前只能是x86_64和amd64),请注意,Docker目前不支持32位CPU.2.运行Linux 3.8或更高版本内核.一些老版本 ...

  2. NetCore上传多文件

    .NetCore上传多文件的几种示例   本章和大家分享的是.NetCore的MVC框架上传文件的示例,主要讲的内容有:form方式提交上传,ajax上传,ajax提交+上传进度效果,Task并行处理 ...

  3. Sql server 查询指定时间区间工作日数、休息日数等日期操作

    1.查询指定时间区间的工作日 这个主要难点是法定节假日,国家的法定节假日每年都不一样,还涉及到调休,所以我们设计一个假日表.主要字段有年份,类型(是否调休),假期日期.如下: CREATE TABLE ...

  4. VirtualBox中出现UUID have already exists ,并且数字键盘numlock效果相反

    原文地址:https://www.cnblogs.com/xqzt/p/5053338.html 原因:由于linux密码登录错误,修改也报错误,所以只能重新安装虚拟机并在其中安装镜像文件,但是安装镜 ...

  5. 1169 传纸条 2008年NOIP全国联赛提高组 个人博客:attack.cf

    1169 传纸条 2008年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond         题目描述 Description 小渊和小轩 ...

  6. [拾零]C语言的数组指针

    为了强化记忆,从而写笔记保留. 数组指针,顾名思义,是在说一个指针,这个指针是指向数组的. 区别于指针数组 int* p[5] = NULL; //指针数组 基类型 int* int (*p)[5] ...

  7. C#调用C++接口返回字符串的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 现在有这样一种情景,假如C#调用C++接口需要返回一个字符串.因为字符串是不定长的,因此传递一个定长的字符串进去是不合 ...

  8. vim的命令

    下面是从一个博客里摘抄出来的, 供自己学习使用.   在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n= ...

  9. xcode在代码中查找中文

    总是忘记xcode中查找中文,这次记下来,以后就不会忘记了,哈哈 请看下图: 切换到查找,点击find后面的text,选择Regular Expression,然后输入 1. 查找非ascii的字符 ...

  10. uvm_mem_mam——寄存器模型(十三)

    有了存储器模型,再来看看存储器的管理 //------------------------------------------------------------------------------ ...