Vim是Linux自带的编辑器,是Vi的高级版,刚开始使用我是一脸懵逼的,跟普通的编辑器完全不同,基本全靠键盘,写完之后也不知道怎么保存,特地花了点时间了解了一下,还是挺简单的。其中,主要包含三种模式,分别是普通模式,插入模式,命令行模式,每种模式都有各自的可进行的操作。

进入vim

vim是在终端上运行的,在进入时只需要输入 vi 就可以运行了。但是也有其他的自定义的方式打开vim,这些方式都是对具体的文件和打开后光标置于文件的位置做的自定义。以下是简单的总结

  • vi 直接进入
  • vi filename 打开或者新建文件,光标置于首行
  • vi +n filename 打开文件,光标置于n行首
  • vi + filename 打开文件,光标置于最后一行首
  • vi +/pattern filename 打开文件,光标置于第一个匹配处

模式切换

刚开始打开vim的时候是进入的普通模式,普通模式是可以进行查看和删除等操作,插入模式只能够插入字符,命令行模式能够进行查找,保存等操作。

普通模式

普通模式可以进行查看等操作

  • 方向键或者hjkl移动游标,w下一个单词开头,b前一个单词结尾,e当前单词结尾
  • gg 光标到文档第一行行首
  • G 光标到文档最后一行行首
  • nG 跳转至n行
  • $ 光标到本行尾
  • 0 光标到本行首
  • x 删除光标所在的字符
  • dd 删除本行
  • u 撤销操作
  • ZZ 保存并退出(shift+zz)
  • ZQ 不保存并退出
  • 快速查找:/向下查找字符串,?向上查找字符串,回车进入查找后,n继续查找,N反向查找。

命令行模式

主要是对文件进行一些保存,退出等操作。

  • :w 保存文件,但不退出
  • :w newfile 另存为
  • :wq 保存并退出
  • :q! 不保存强制退出
  • :q 未作修改的情况下直接退出
  • :e 打开新的文件
  • !命令 执行外部shell命令

vim设置

最后vim本身还有一些实用的设置,也可以了解一下,当然,这是在命令行模式下进行的,也是以冒号开头。

  • set nu 显示行号
  • :set autoindent 缩进,常用于程序的编写
  • :set noautoindent 取消缩进
  • :set number 在编辑文件时显示行号
  • :set nonumber 不显示行号
  • :set tabstop=value 设置显示制表符的空格字符个数
  • :set 显示设置的所有选项
  • :set all 显示所有可以设置的选项

基本大部分常用的vim操作都在这了,忘了的时候多回顾回顾,代码写的不管好坏,但是操作一定要酷炫。

VIM全总结的更多相关文章

  1. vim全选,全部复制,全部删除

    全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入V ...

  2. vim全选复制

    网上一堆答案全是ggyG,根本不行, 正确答案应该是 gg"*yG 或者 gg"*+yG 下面是在stack overflow 上找到的答案,亲测有效,在此记录下 stackove ...

  3. vscode + vim 全键盘操作高效搭配方案

    基础知识 vscode-vim vscode-vim是一款vim模拟器,它将vim的大部分功能都集成在了vscode中,你可以将它理解为一个嵌套在vscode中的vim. 由于该vim是被模拟的的非真 ...

  4. 【Linux学习三】VI/VIM全屏文本编辑器

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.打开关闭文件打开文件:vim /path/to/somefilev ...

  5. vim全选复制粘贴

    感谢来源:http://blog.sina.com.cn/s/blog_6e70abbd0100zbk9.html ggVG #gg: 光标跳转到首行,在vim才有效,vi中无效 #V 是进入Visu ...

  6. [转帖]Vim全键盘操作

    https://www.cnblogs.com/pzqu/p/11416436.html Vim脱离鼠标第一步 平时不可缺少的会用到vim,但是避免不了鼠标,事实上,省略鼠标是完全可以的,没有想像中那 ...

  7. Vim 全选命令

    ggVG稍微解释一下上面的命令gg 让光标移到首行,在vim才有效,vi中无效V   是进入Visual(可视)模式G  光标移到最后一行选中内容以后就可以其他的操作了,比如:d  删除选中内容y   ...

  8. 1.vim常用方法

    vim编辑器 ASCII   vi: vim:   全屏,模式化   vim模式: 编辑模式(命令模式) 输入模式 末行模式   模式转换: 编辑-->输入 i,a,o (o:在当前光标所在行的 ...

  9. vim使用札记

    最近开始用vim编辑器了,从最开始的配置到现在慢慢使用,我在这儿会贴出一些我的使用上遇到过的问题和如何解决的方案,留给自己和一些会用到的人看看 1.vim怎么使汇编语法高亮 开始不知道,然后把文件的后 ...

随机推荐

  1. router-link to 动态赋值

    路由定义: 动态赋值: <router-link :to="{path:'/old_data_details/params/'+item.id}" > </rou ...

  2. PHP类知识----面向对象在内存空间的分布情况

  3. es6的Set结构

    今天看了一下es6的文档,发现还是比较实用的,Set结构可以用来数组的去重哎 let arr = [1,3,6,3,1,9] let arr1 = new Set(arr) [...arr1]的值就是 ...

  4. 【CUDA 基础】3.5 展开循环

    title: [CUDA 基础]3.5 展开循环 categories: - CUDA - Freshman tags: - 展开归约 - 归约 - 模板函数 toc: true date: 2018 ...

  5. 通过PCI9030向外部RAM写数据失败现象

    我们的系统方案是:以9030作为PCI接口芯片,本地端映射了一片IDT70V06的双端口RAM.进行数据传输压力测试时,发现PC机向IDT70V06写数据偶尔会失败.这一问题是什么原因造成的呢? 最初 ...

  6. Linux 搭建Mysql主从节点复制

    Linux环境 Centos 6.6 64位 准备两台服务器,搭建一主一从,实现Mysql的读写分离和数据备份 主节点 192.168.43.10 leader 从节点 192.168.43.20 d ...

  7. 微信小程序_(组件)swiper轮播图

    微信小程序swiper轮播图组件官方文档 传送门 Learn: swiper组件 一.swiper组件 indicator-dots:是否显示面板指示点[默认值false] autoplay:是否自动 ...

  8. JavaWeb-SpringBoot(抖音)_二、服务器间通讯

    JavaWeb-SpringBoot(抖音)_一.抖音项目制作 传送门 JavaWeb-SpringBoot(抖音)_二.服务器间通讯 传送门 JavaWeb-SpringBoot(抖音)_三.抖音项 ...

  9. 我要学习Python

    现在是2017年6月7号北京时间20点57分,不知道从什么时候我想学习Python了,我现在做的工作是运维工程师,为了成为一个优秀点的运维人员,也为了以后能有更好的发展机会,我想学习一下Python, ...

  10. 使用conda进行本地安装

    1. 由于安装源被墙转换为本地安装 例如要安装 boost-1.59版本,因为在默认源中没有,我们指定了特定源进行安装 conda install -c menpo dlib=boost-1.59 然 ...