开发者社区> Congee_> 正文

Linux-vim

简介: 命令行下的文本编辑器,能够根据扩展名识别编程语言,支持自动缩进和代码高亮。
+关注继续查看

简介

命令行下的文本编辑器,能够根据扩展名识别编程语言,支持自动缩进和代码高亮。使用方法:

vim filename

若该文件不存在,则打开一个新文件命名为filename

共有三个模式以实现不同的操作

  1. 一般命令模式:按指定的键可以实现复制、粘贴、选择、删除等操作
  2. 编辑模式:在一般命令模式下按 i 键会进入编辑模式,此时可对文件进行编辑,编辑模式下按 esc 键会退出编辑模式返回一般命令模式
  3. 命令行模式:在一般命令模式下按 : / ? 中的任意一个可以进入命令行模式,输入相关命令可执行相应的操作,如查找、替换、保存、退出等

一般命令模式操作

  1. i :进入编辑模式
  2. h 或 左方向键 : 光标向左移动一个字符
  3. j 或 下方向键 : 光标向下移动一个字符
  4. k 或 上方向键 : 光标向上移动一个字符
  5. l 或 右方向键 : 光标向右移动一个字符
  6. 数字n+空格 :光标向右移动这一行的n个字符
  7. 数字n+回车 :光标向下移动n行
  8. 0 或 home键 :光标移动到本行开头
  9. $ 或 end键 :光标移动到本行末尾
  10. 字母G :光标移动到最后一行
  11. 字母gg(连按两次g):光标移动到第一行
  12. 数字n+字母G :光标移动到第n行
  13. /word :向光标之下寻找第一个值为word的字符串
  14. ?work :向光标之上寻找第一个值为word的字符串
  15. v :选中文本,按下后可用方向键或上述移动光标的命令选择文本
  16. y :复制选中的文本
  17. d :删除选中的文本
  18. dd :剪切光标所在行
  19. yy :复制光标所在行
  20. p :将复制的数据在光标下一个位置/下一行粘贴
  21. u :撤销
  22. ctrl + r :取消撤销
  23. ctrl + q :取消当前正在执行的命令,vim卡住时可尝试
  24. > :将选中的文本向右缩进
  25. < :将选中的文本向左缩进
  26. ggdG :组合键,删除全文
  27. gg=G :将全文代码格式化

命令行模式操作

  1. :q 退出
  2. :q! 不保存修改强制退出
  3. :w 保存
  4. :wq 保存并退出
  5. :set nu 显示行号
  6. :set nonu 隐藏行号
  7. :set paste 设置成粘贴模式,取消自动缩进
  8. :set nopaste 取消粘贴模式,开启自动缩进
  9. :noh 关闭查找关键词高亮
  10. :n n为数字,将光标移动到第n行,同 nG
  11. :n1,n2s/word1/word2/g n1与n2为数字,在第n1行与n2行之间寻找word1这个字符串,并将该字符串替换为word2
  12. :1,$s/word1/word2/g 将全文的word1替换为word2
  13. :1,$s/word1/word2/gc 将全文的word1替换为word2,且在替换前要求用户确认

异常处理

每次用vim打开文件时,会自动创建一个.filename.swp的文件用来保存临时数据,在正常退出文件时该临时文件会被删除,若不正常退出则该文件会存在。用vim打开文件时若.filename.swp这个临时文件已存在,则会报错,可按提示进行操作。或者,1.找到正在编辑该文件的vim并退出,2.直接删掉该swp临时文件

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
前端面试之彻底搞懂this指向
this是JavaScript中的一个关键字,但是又一个相对比较特别的关键字,不像function、var、for、if这些关键字一样,可以很清楚的搞清楚它到底是如何使用的。 this会在执行上下文中绑定一个对象,但是是根据什么条件绑定的呢?在不同的执行条件下会绑定不同的对象,这也是让人捉摸不定的地方。 这一次,我们一起来彻底搞定this到底是如何绑定的吧!
7 0
nodejs插件开发与发布
本文主要介绍如何快速创建nodejs插件并发布到npm上。npm是一个让JavaScript程序员分享和复用代码的工具,我们不仅可以install别人的插件,也可以publish自己的代码。
5 0
浅谈API设计风格
API 风格是一个备受争议的话题,大多数开发者都熟悉 REST 与 GraphQL 的争论,更不用说其他风格了。本文将介绍常见的8种不同的API风格。
6 0
JavaScript面向对象详解(一)
ES6之前的JavaScript面向对象比较不好理解,涉及到很多知识和思想。 ES6增加了class和extends来实现类的封装和继承,但是通过babel转换成ES5之后还是之前的一套逻辑。 这里,我打算用四篇文章,来讲解一下关于ES5中面向对象的知识体系,一起学习一下吧!
5 0
Vue开发中可以使用的ES6特征
ECMAScript 6.0(以下简称 ES6)是 Javascript 语言的下一代标准,正式发布与2015年6月。它的目标,是使得Javascript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
7 0
React系列二 - 核心JSX语法一
虽然目前React开发模式中更加流行hooks,但是依然有很多的项目依然是使用类组件(包括AntDesign库中); 但是有很多的同学对ES6中的类不太熟悉,所以这里我还是补充一下;
4 0
构建WEB项目的 25 个HTML建议
HTML 超文本标记语言是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计网页、网页应用程序以及移动应用程序的用户界面。
8 0
JDK1.8新特性(五):Stream,集合操作利器,让你好用到飞起来
本文就Stream的基础使用层面进行了全面的介绍、实战,告诉你该怎么用每种操作符,只有掌握了这些基本的操作,在面对实际复杂处理逻辑时,需要进一步配合使用,就会知道它的妙处了。这也让你对集合的操作更上一步,为你省去了不少麻烦。关于Stream更深入的说明,如:并行处理、是否高效等,将会在之后的章节进行详尽的阐述、验证,以消除使用中的疑惑与担忧。
11 0
JDK1.8新特性(六):Stream的终极操作,轻松解决集合分组、汇总等复杂操作
本文将讲述关于Stream的终极操作,让你轻松解决集合的分组、汇总等操作,让其他同事对你刮目相看。
7 0
JDK1.8新特性(七):默认方法,真香,开动!接口?我要升级!!
interface这个关键字产生一个完全抽象的类,它根本就没有提供任何具体的实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口只提供了形式,而未提供任何具体实现。
5 0
+关注
6
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载