• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. vim的四种模式
  2. 2. vimrc
    1. 2.1. set命令
    2. 2.2. map命令
  3. 3. 光标的移动
  4. 4. 跳转
  5. 5. 剪切 复制 粘贴
    1. 5.1. 组合删除

vim学习手记(1)

2019-03-27 22:23:34
总字数 1.3k
预计阅读时间 4 分钟

Vim作为Linux平台首选编辑器, 支持目录树, 语法高亮, 代码补全等等功能
以及可以通过插件进行定制化的扩展

vim的四种模式

  1. 一般模式: 刚进入vim的时候, 所在的就是一般模式
  2. 编辑模式: 也就是可对文件内容进行修改的状态, 比如在一般模式按i就进入了输入模式 ( INSERT 状态 )
    按shift+r可以进入 REPLACE 状态
  3. 命令模式: 在一般模式下输入:进入命令模式
  4. 可视模式: 在一般模式下输入v进入可视模式, 在该模式下可以使用鼠标选择文本进行操作

在 2 3 4 模式下按Esc返回到一般模式

vimrc

vimrc指的是vim run command , 也就是运行命令

在一般模式下输入:进入到命令模式

set命令

set命令用于设置vim的配置项

比如最常见的使用命令为vim设置行号的显示
就是set number
如果后面加上一个? 那么就是可以返回该设置项当前的设置
set nonumber就是取消行号的显示
vimrc

每次打开文件都执行一些基本设置的命令显然过于繁琐
我们通常把一些通用的设置放在.vimrc文件当中

  • 系统级 : 默认路径为/usr/share/vim/.vimrc
  • 用户级 : 默认路径为~/.vimrc

比如我们在.vimrc当中如果加入set number
那么每次使用vim打开文件默认就是显示行号的

其他常用的选项

  • ruler - 设置以后会在右下角显示当前所在位置的百分比
  • hlsearch 或者 hls - 使用/开头执行搜索的时候会高亮所有匹配到的内容
  • ignorecase - 执行搜索时忽略大小写
  • wrap - 自动折行
  • 自动调整缩进 : autoindent 与 smartindent
    前者在新插入一行的时候会自动复制上一行的缩进值
    后者则会自动识别一些编程语言的语法结构, 比如{}代码块当中的内容

map命令

map命令用于设置宏按键
比如

1
map <F3> i<html><CR><body></body><CR></html>

这样在vim当中按下F3的时候, 就相当于输入后面的所有内容

宏按键只在一般模式下起作用, 所以后面的内容中先写一个i, 相当于进入到输入模式

光标的移动

这些操作只在一般模式下起作用
光标的移动

基本移动

  • h ⬅️ 向左移动
  • l ➡️ 向右移动
  • j ⬇️ 向下移动
  • k ⬆️ 向上移动

以单词为距离的移动, 以空白以及特殊字符(比如逗号)作为单词分隔

  • w/W - 向后移动一个单词, 其中小写的是特殊字符也作为一个单词处理, 大写是将特殊字符归到附近的一个单词
  • b/B - 向前移动一个单词, 大小写区别同上
  • e/E - 向后移动一个单词(光标会置于单词末尾)
  • ge - 向前移动一个单词(光标会置于单词末尾)

行操作

  • 0 或者 ^ - 移动至行首(如果行首有缩进, 0会将光标置于缩进之前, ^会将光标置于缩进之后)
  • $ - 移动至行尾

^和$与正则表达式中表示字符串的开头与末尾是一致的

跳转

  • Ctrl+f - 下一页 ( forward )
  • Ctrl+b - 上一页 ( back )
  • Ctrl+d - 向下翻半页
  • Ctrl+u - 向上翻半页
  • gg - 跳转到文件首行
  • G - 跳转到文件尾行
  • :行数 - 跳转到指定的行

剪切 复制 粘贴

在vim当中剪切可以当做删除使用
( 也就是所有涉及删除的操作, 实际上都会放入寄存器当中, 使用p可以粘贴 )

  • dd - 剪切整行 ( delete )
  • {n}dd - 向下剪切n行 ( 包含当前光标所在的行 )
  • yy - 复制整行 ( yank )
  • p - 粘贴 ( paste )
  • u - 撤销 ( undo )
  • Ctrl+r - 重做 ( redo )

在vim当中存在一个独立的寄存器空间, 它不同于操作系统中的剪贴板
执行剪切或复制的内容都会置于寄存器当中
使用命令reg可以查看寄存器当中存储的内容

组合删除

删除其实就是剪切, 按p可以直接粘贴最近一次删除的内容

  • x/X - 删除光标下/前单个字符
  • dw - delete word, 删除光标之后的整个单词 ( 光标应位于词首 )
  • d$/D - 删除从光标处到行尾的所有字符
  • d^ - 删除从光标处到行首的所有字符

这是vim当中比较通用的一种组合方式
也就是[count]operation+[count]motion组合
比如前面的d是删除, 属于操作
后面的w本来是光标向后移动一个单词, 属于动作
所以组合起来就是向后删除一个单词
操作和动作都是可以添加数字的
代表重复执行若干次
比如2d3w, 就代表删除光标后的3个单词, 重复该操作2次 ( 当然也可以写作d6w, 作用是一样的 )

前面在光标的移动当中提到的动作, 都可以按照这种方式进行组合

  • linux
  • vim
  • linux

扫一扫,分享到微信

vim学习手记(2)
函数防抖与函数节流 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆