vim1
Vim模式介绍
几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim接入不同的方式:命令目录(鼠标或者键盘驱动),组合键(CTRL和ALT组成)或鼠标输入。Vim和vi一样,仅通过键盘来在这些模式之中切换,
Vim具有6种基本模式和5种派生模式。
普通模式(Normal mode):在普通模式中,用的编辑器命令,这是Vim启动后默认的模式。普通命令模式往往需要一个操作符结尾。
插入模式(Insert mode):在插入模式中,大多数案件都会向文本缓冲中插入文本。大多数新用户希望文本编辑器过程中一直保持这个模式。在插入模式中,可以按Esc键回到普通模式。
可视模式(Visual mode):这个模式和普通模式较相似。但移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的“文本对象”也能和移动命令一样用在这个模式中。
选择模式(Select mode):这个模式和无模式编辑器的行为比较相似。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
命令行模式(Command line mode):在命令行模式中可以输入会被解析成并执行的文本。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
Ex模式(Ex mode):在使用:visual命令离开Ex模式前,可以一次执行多条命令。
常用的是普通模式、插入模式和命令行模式。
三种常用模式的切换
vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或Ctrl+[即可进入普通模式。在普通模式中按i(插入)或a(附加)键都可以进入插入模式,在普通模式中按:进入命令行模式。命令行模式中输入wq回车后保存并退出vim。
进入Vim
使用Vim命令进入vim界面。
$ vim practise.txt //直接使用vim也可以打开vim编辑器,但不是打开任何文件。
在进入vim后,按下i键进入插入模式。按Esc进入普通模式,在该模式下使用方向键或h(左)、j(下)、k(上)、l(右)键移动光标。w移动到下一个单词,b移动到上一个单词。
按以下键可进入插入模式,并可以从相应的位置开始输入。
i:在当前光标处进行编辑 I:在行首插入 A:在行末插入 a:在光标后插入编辑 o:在当前行后插入一个新行
O:在当前行前插入一个新行 cw:替换从光标所在位置后到一个单词结尾的字符
保存文档:在普通模式输入:进入命令模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其他路径下。
退出Vim
普通模式输入:进入命令行模式后,输入wq回车,保存并退出编辑。
:q! 强制退出,不保存
:q 退出
:wq! 强制保存并退出
:w <文件路径> 另存为
:saves 另存为
:x 保存并退出
:wq 保存并退出
在普通模式下退出vim:Shift+zz
删除文本
普通模式下删除vim文本信息
x:删除游标所在的字符 X:删除游标所在前一个字符 Delete:同x dd:删除正行 dw:删除一个单词
d$或D:删除至行尾 d^:删除至行首 dG:删除到文档结尾处 d1G:删至文档首部
vim1的更多相关文章
- 入门VMware Workstation下的Debian学习之Vim简单使用(三)
什么是Vim? Vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计. Vim是从vi发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广 ...
- vim 源码分析
vim 源码分析 http://bbs.csdn.net/topics/230031469 Ver7.1 晕.看不明白很正常. 7.1已经很大了. 支持了太多东西. 代码行数那么多(源码压缩了都 ...
- Armbian编译以及定制
Armbian项目地址 Github: https://github.com/armbian/build Armbian for TV Box 项目地址 Github: https://github. ...
- 第二周、ubuntu的简单介绍与使用
一.复习第一周的大致内容:1.UNIX与Linux.ubuntu系统UNIX是1971年贝尔实验室的肯·汤普逊.丹尼斯·里奇,合作研发一款通过的操作系统,多用户.多任务.安全.稳定,收费.Linux是 ...
随机推荐
- HDUOJ-----(1162)Eddy's picture(最小生成树)
Eddy's picture Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- 自动发牌(C#版)
利用数组实现发牌过程 一副牌去掉大小王,还剩52张.一共东.南.西.北四家,每家随机发13张牌. 提示: 东.南.西.北四家用一维数组表示 每家的牌采用一维数组表示(13张) 花色:enum Sui ...
- 玩转linux文件(重点)
一.几个主要的操作 mkdir—创建目录 cp—复制文件和目录 mv——移动/重命名文件和目录 rm——删除文件和目录 ln——创建硬链接和软链接 二.几个考点: 通配符 硬链接和软链接(符号链接) ...
- python的一点小常识
在Python中,有两种变长参数,分别是元组(非关键字参数)和字典(关键字参数),其参数以一个*开头表示任意长度的元组[tuple],可以接收连续一串参数,参数以两个*开头表示一个字典[dict],即 ...
- 一个Java递归程序
先来没事搜了一些面试题来做,其中一道:输入一个整数,求这个整数中每位数字相加的和? 思考:1.如何或得每一位数:假如是1234, 1234%10=4,得到个位:(1234/10)%10=3得到十位 ...
- Web API初印象
理解REST,RESTful和Web API 1.REST:Representational State Transfer表征状态转移,是Roy Fielding博士在2000年他的博士论文中提出来的 ...
- sql2008 附加数据库出错解决方法
当遇到 无法为此请求检索数据,(Microsoft.SqlServer.SmoEnum)其他信息执行Transact-Sql语句或批处理时发生了异常, Microsoft.SqlServer.Conn ...
- 二模 (11) day2
第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...
- Linux-VLAN
Why Vlan? VLAN是为解决以太网的广播问题和安全性而提出的一种协议,它在以太网帧的基础上增加了VLAN头,用VLAN ID把用户划分为更小的工作组,限制不同工作组间的用户二层互访,每个工作组 ...
- Java并发编程(二)线程任务的中断(interrupt)
使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回. ...