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的undo表空间
undo表空间是Oracle特有的概念.undo表空间中会自动分配undo段,这些undo段用来保存事务中的DML语句的undo信息,也就是来保存数据在被修改之前的值.在rollback,实例恢复(回 ...
- 关于安装SVN Service 出错 Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for more details
关于安装SVN Service 出错 Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in ...
- redis 的消息队列 VS kafka
redis push/pop VS pub/sub (1)push/pop每条消息只会有一个消费者消费,而pub/sub可以有多个 对于任务队列来说,push/pop足够,但真的在做分布式消息分发的时 ...
- 【WebDriver】WebDriver 常用操作
WebDriver 常用操作 1 浏览器操作 2 窗口和弹框操作 3 cookies 操作 4 简单对象的定位 5 页面元素操作 6 鼠标事件 7 键盘事件 1 浏览器操作 #属性: driver.c ...
- 给Access数据库文件减肥
原理:数据文件和普通文件在硬盘上的存放方式不一样,你清空了表里的数据,但数据库里数据没了,但该数据的位置还在.就好比一个班里的学生都离开了教室,教室没有人了,但学生的座位还在一样(哈哈,这个比喻不是很 ...
- wx工具栏,菜单栏,状态栏
#!/usr/bin/env python # -*- coding: utf- -*- import wx import wx.py.images class ToolbarFrame(wx.Fra ...
- vue-电脑端导出-txt
// fakeClick(obj) { // var ev = document.createEvent("MouseEvents"); // ev.initMouseEvent( ...
- Python 全栈开发四 python基础 函数
一.函数的基本语法和特性 函数的定义 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数 ...
- yum 安装报错 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
原因: 这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现.而python版本之间兼容性不太好,使得2.X版本与3.0版本 ...
- Mac 安装HTMLTestRunner模块
1.下载HTMLTestRunner.py文件 下载地址http://tungwaiyip.info/software/HTMLTestRunner.html 将下载的文件放在lib下: /Libra ...