Vim 文本编辑器的基本使用

时间:2022-10-23 17:07:20

Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立、修改、编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具的使用对于使用linux系统是非常有必要的。通过本文记录Vim编辑器的基本使用方法,用以强化记忆或者以备以后复习。(cat与<<EOF结合也可以实现编辑器的部分功能,可以生成和编辑文档:cat >log.txt <<EOF)

主要参考资料有:

1.《鸟哥的Linux私房菜》

2.《Linux就该这么学》

3.速成Vim https://learnxinyminutes.com/docs/zh-cn/vim-cn/

4.菜鸟教程 http://www.runoob.com/linux/linux-vim.html

5.其他互联网资料,google,baidu等搜索引擎

一、Vim 编辑器的三种模式


基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)
 
(1)命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
以下是常用的几个命令:
  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。
  • u 撤销
  • ctrl+r 恢复撤销
若想要编辑文本:启动Vim,进入了命令模式,按下 i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
 
(2)输入模式:
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式
 
(3)底线命令模式:
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
  • q 退出程序
  • q!强制退出
  • w 保存文件
  • wq filename:保存为指定文件名并退出

按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:

Vim 文本编辑器的基本使用

二、Vim的基本命令操作


Vim 导航基础

    vim <filename>   # 在 Vim 中打开 <filename>
    :q               # 退出 Vim
    :w               # 保存当前文件
    :wq              # 保存文件并退出 Vim
    :q!              # 退出 Vim 并且不保存文件
                     # ! *强制* 执行 :q, 因此没有保存就退出 Vim
    :x               # 保存文件并且退出 Vim, 是 :wq 的简写版本

    u                # 撤销
    CTRL+R           # 重做

    h                # 左移一个字符
    j                # 下移一行
    k                # 上移一行
    l                # 右移一个字符

    # 在行内移动

    0                # 移到行首
    $                # 移到行尾
    ^                # 移到行内的第一个非空白字符处

    # 在文本中查找

    /word            # 光标之后的所有该词都高亮显示
   ?word            # 光标之前的所有该词都高亮显示
    n                # 查找后将光标移到该词的下一个出现位置
    N                # 光标移到该词的上一个出现位置

    :%s/foo/bar/g    # 将文件每一行上的所有 'foo' 都改成 'bar'
    :s/foo/bar/g     # 将当前行上的所有 'foo' 都改成 'bar'

    # 跳到字符处

    f<字符>         # 向前跳移到 <字符> 上
    t<字符>         # 向前跳移到 <字符> 的左侧

    # 例如,
    f<               # 向前跳移到 < 上
    t<               # 向前跳移到 < 的左侧

    # 按词移动
    # 默认一个单词由字母,数字和下划线组成

    w                # 移动到下一个词首
    b                # 移动到前一个词首
    e                # 移动到下一个词尾

    # 移动的其它命令

    gg               # 移到文件顶部  [[         # 同gg
    G                # 移到文件末尾  ]]         # 同G
    :NUM             # 移到第 NUM 行 (NUM 是任意数字)
    H                # 移到屏幕顶部(head)
    M                # 移到屏幕中间位置(middle)
    L                # 移到屏幕末尾(last)

模式:

Vim 基于 模式 这个概念。

命令模式 - Vim 启动后就处于这个模式,用于导航和操作命令 插入模式 - 用于在你的文件中进行修改 可视模式 - 用于高亮文本并对它们进行操作 Ex 模式 - 用于跳到底部的 ‘:’ 提示行上输入命令

    i                # 在光标位置前,将 Vim 切换到插入模式
    a                # 在光标位置后,将 Vim 切换到插入模式
    v                # 将 Vim 切换到可视模式
    :                # 将 Vim 切换到 ex 模式
    <esc>            # 无论你当前处于什么模式,都返回到命令模式

    # 复制和粘贴文本

    y                # 复制所选的内容
    yy               # 复制当前行
    d                # 删除所选的内容
    dd               # 删除当前行
    p                # 在当前光标位置后粘贴复制的文本
    P                # 在当前光标位置前粘贴复制的文本
    x                # 删除当前光标位置处的字符

Vim 的 ‘语法’

Vim 可以被认为是按 ‘动词-修饰词-名词’ 格式编排的一组命令:

动词 - 你的动作 修饰词 - 你如何执行你的动作 名词 - 你的动作所作用于的对象

关于 ‘动词','修饰词',和 '名词’ 的几个重要例子:

    # '动词'

    d                # 删除
    c                # 修改
    y                # 复制
    v                # 可视化选择

    # '修饰词'

    i                # 内部的
    a                # 周围的
    NUM              # 数字 (NUM 是任意数字)
    f                # 查找文本并位于其上
    t                # 查找文本并停于其前面
    /                # 从光标处开始查找字符串
    ?                # 在光标前查找字符串

    # '名词'

    w                # 词
    s                # 句子
    p                # 段落
    b                # 块

    # 示例 '语句' 或命令

    d2w              # 删除  个词
    cis              # 修改段落内的内容
    yip              # 复制段落内的内容 (复制你所在的段落)
    ct<              # 修改直到括号开启处
                     # 对你的当前位置直到下个括号开启处的内容进行修改
    d$               # 删除直到行尾

一些快捷键和技巧

    <!--TODO: Add more!-->

    >                # 将所选内容缩进一级
    <                # 将所选内容取消缩进一级
    :earlier 15m     # 将文档还原到  分钟前的状态
    :later 15m       # 逆转上述命令
    ddp              # 相邻行交换位置,先 dd 再 p
    .                # 重复之前动作

宏基本上来说就是可录制的动作。 当你开始录制宏时,它会记录你使用的 每个 动作和命令, 直到你停止录制。当调用宏时,它会将这个完全相同的动作和命令序列 再次应用于所选文本之上。

    qa               # 开始录制一个叫 'a' 的宏
    q                # 停止录制
    @a               # 重播宏

配置 ~/.vimrc

.vimrc 可用于在启动时对 Vim 进行配置。

这里是一个示例 ~/.vimrc 文件:

" 示例 ~/.vimrc
" 2015.10 

" 需要 Vim iMproved 版本
set nocompatible

" 根据文件名检测文件类型,以便能进行智能自动缩进等操作。
filetype indent plugin on

" 开启语法高亮
syntax on

" 更好的命令行补全
set wildmenu

" 除了当使用大写字母时使用大小写无关查找
set ignorecase
set smartcase

" 当新开一行时,如果没有开启文件特定的缩进规则,
" 则缩进保持与你当前行一致
set autoindent

" 在左侧显示行号
set number

" 缩进选项,根据个人偏好进行修改

" 每个 TAB 的可视空格数
set tabstop=

" 编辑时 TAB 对应的空格数
set softtabstop=

" 当使用缩进操作 (>> 和 <<) 时缩进的空格数
set shiftwidth=

" 将 TAB 转换成空格
set expandtab

" 为缩进和对齐开启智能化的 TAB 和空格切换功能
set smarttab

2018-04-27  22:36:47  于南京仙林亚东城

Vim 文本编辑器的基本使用的更多相关文章

  1. &lpar;6&period;2&rpar;vim文本编辑器

    vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大. vim文本编辑器只有命令,没有菜单.

  2. Linux系统 vi&sol;vim文本编辑器

    Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...

  3. 11 vim文本编辑器

    和sed相比,sed为字处理器(行编辑器),将文本逐行放入到模式空间(也就是内存)中进行处理,并显示在屏幕上.而vim.vi以及nano都是全屏文本编辑器,而vim则是vi的加强版本,相对于vi,vi ...

  4. Linux命令行下的vim文本编辑器

    Linux命令行下的vim文本编辑器 下面这个网站的地址讲解的非成分清楚!!!! http://blog.csdn.net/niushuai666/article/details/7275406 学习 ...

  5. linux100day(day3)--常用文本处理命令和vim文本编辑器

    今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...

  6. Vim文本编辑器详细用法

    1 Vi.Vim文本编辑器 1.Vi.Vim Vi是Visual interface的简称. Vim是Vi的增强版,即Vi Improved.在后面的实例中将介绍Vim的使用. 为什么学vi? 1)所 ...

  7. linux&sol;linux学习笔记-vim文本编辑器&lpar;mooc&rpar;

    vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...

  8. Linux学习笔记(九)Vim文本编辑器的使用

    Vim文本编辑器的使用 Vim的工作模式 1.命令模式 2.输入模式 3.编辑模式 进入Vim 1.使用Vim打开文件 2.直接进入指定位置 Vim基本命令 1.插入命令 2.光标移动命令 3.使用V ...

  9. 第十八章 vi&sol;vim文本编辑器介绍

    一.vi/vim文本编辑器介绍 1.含义: vi就是一个文本编辑器 2.为什么学习: 系统配置 编写脚本 vim就是vi的升级版 高级版 [root@jindada ~]# [root@jindada ...

随机推荐

  1. jQuery&period;Callbacks之源码解读

    在上一篇jQuery.Callbacks之demo主要说了Callbacks对象初始化常见的选项,这一篇主要分析下Callbacks对象的源代码,对给出两个较为繁琐的demo // String to ...

  2. &lbrack;Golang&rsqb;Go Packages

    ---------------------------------------------------------------------------------------------------- ...

  3. C语言连接MySQL数据库(课程设计总结)

    刚结束课程设计,也预示着假期立即就要到来了.本次课程设计并不算难,无非就是让做一个XXX系统,实现用户的注冊.登录.菜单管理.超级用户等等一些功能,到如今为止已经做过好几个了,所以基本流程都熟悉了! ...

  4. Javascript 备忘

    1遍历所有属性 var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=tx ...

  5. o怎么样racle输入dmp数据库文件

    Oracle进出口数据imp/exp等价物oracle数据恢复和备份. exp命令可以从远程数据库传输数据server出到本地的dmp文件,imp命令能够把dmp文件从本地导入到远处的数据库serve ...

  6. &lbrack;每日一题&rsqb; 11gOCP 1z0-052 &colon;2013-09-15 Enterprise Manager Support Workbench&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;B9

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11715219 正确答案:ABD EnterpriseManger Support Work ...

  7. Class&period;forName&lpar;&rpar;

    主要功能 Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就是说JVM会执行该类的静态代码段 ...

  8. 1657&colon; &lbrack;Usaco2006 Mar&rsqb;Mooo 奶牛的歌声

    1657: [Usaco2006 Mar]Mooo 奶牛的歌声 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 526  Solved: 365[Submi ...

  9. ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  10. 扫雷游戏制作过程(C&num;描述):第二节、界面设计

    前言 这里给出教程原文地址. 该项目已经放在github上托管. 扫雷界面设计 界面的设计,首先需要创建一个菜单栏.具体方法在左边找到工具箱窗口,展开其中的菜单和工具栏,找到MenuStrip选项,双 ...