Vim 文本编辑器的基本使用
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)。
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
- u 撤销
- ctrl+r 恢复撤销
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- q!强制退出
- w 保存文件
- wq filename:保存为指定文件名并退出
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
二、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 文本编辑器的基本使用的更多相关文章
- (6.2)vim文本编辑器
vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大. vim文本编辑器只有命令,没有菜单.
- Linux系统 vi/vim文本编辑器
Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...
- 11 vim文本编辑器
和sed相比,sed为字处理器(行编辑器),将文本逐行放入到模式空间(也就是内存)中进行处理,并显示在屏幕上.而vim.vi以及nano都是全屏文本编辑器,而vim则是vi的加强版本,相对于vi,vi ...
- Linux命令行下的vim文本编辑器
Linux命令行下的vim文本编辑器 下面这个网站的地址讲解的非成分清楚!!!! http://blog.csdn.net/niushuai666/article/details/7275406 学习 ...
- linux100day(day3)--常用文本处理命令和vim文本编辑器
今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...
- Vim文本编辑器详细用法
1 Vi.Vim文本编辑器 1.Vi.Vim Vi是Visual interface的简称. Vim是Vi的增强版,即Vi Improved.在后面的实例中将介绍Vim的使用. 为什么学vi? 1)所 ...
- linux/linux学习笔记-vim文本编辑器(mooc)
vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...
- Linux学习笔记(九)Vim文本编辑器的使用
Vim文本编辑器的使用 Vim的工作模式 1.命令模式 2.输入模式 3.编辑模式 进入Vim 1.使用Vim打开文件 2.直接进入指定位置 Vim基本命令 1.插入命令 2.光标移动命令 3.使用V ...
- 第十八章 vi/vim文本编辑器介绍
一.vi/vim文本编辑器介绍 1.含义: vi就是一个文本编辑器 2.为什么学习: 系统配置 编写脚本 vim就是vi的升级版 高级版 [root@jindada ~]# [root@jindada ...
随机推荐
- oracle如何查看执行计划
1.在PL/SQL Developer中得到一个SQL的执行计划 输入想要查看执行计划的目标SQL,再按一下快捷键F5就可以了.2.explain plan 命令 explain plan for + ...
- vs2015智能提示英文改为中文
vs2015智能提示英文改为中文 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework 进入 \v ...
- dedecms标签(tags)页面伪静态设置
我们在创建文章的时候经常会设置一些tags,如果发表文章时关键词没添加的话tags也会自动成为文章的关键词,tags是一个不错的功能,通过关键词链接可以快速寻找到相关内容,但是标签页面的url经常会带 ...
- Wordpress安装Redis为网站加速
前面我们讲了宝塔Linux面板安装Redis,现在我们来举一些例子来看看redis的实际运用,比如Wordpress安装Redis为网站加速,下面就跟着ytkah一起来操作一下. 第一,下载predi ...
- 【UNIX网络编程(三)】TCP客户/server程序演示样例
上一节给出了TCP网络编程的函数.这一节使用那些基本函数编写一个完毕的TCP客户/server程序演示样例. 该样例运行的过程例如以下: 1.客户从标准输入读入一行文本,并写给server. 2.se ...
- 每周工作4小时,蒂莫西·费里斯 最理想的工作方式和生活方式,QQ群666243547
内容简介 · · · · · · <每周工作4小时>是一本从观念到行为,彻底改变你的工作方式和生活方式的书.它既是数字时代的职场励志书和创业指导书,也是新新人类的全球化生存手册和人生哲学 ...
- vue/cli3 配置vux
安装各插件 试过 安装“必须安装”的部分亦可 1.安装vuex npm install vuex --save-dev 2.在项目里面安装vux[必须安装] npm install vux --sav ...
- abap函数返回结构体类型
1: 定义一个结构体 T-CODE se11 2: 选择 structure 3:输入相应的字段 4:激活 5:创建一个function module zfm_return_table,返回类型为 ...
- MYSQL: set names utf8是什么意思?
set names utf8 是用于设置编码,可以再在建数据库的时候设置,也可以在创建表的时候设置,或只是对部分字段进行设置,而且在设置编码的时候,这些地方最好是一致的,这样能最大程度上避免数据记录出 ...
- 9个Linux系统常用监控命令
我们的系统一旦上线跑起来我们自然希望它一直相安无事,不要宕机,不要无响应,不要慢腾腾的.但是这不是打开机器电源然后放任不管就可以得到的.所以我们要监视系统的运行状况,发现问题及时处理. 对于系统和网络 ...