Linux---够开发过程中使用的Vim命令
来源:互联网 发布:盘古网络模板 编辑:程序博客网 时间:2024/06/17 19:36
1 Vim最基础
Vim的最常用的四种模式(四种模式的提示在Vim左下角提示【-- INSERT--】、【:】、【】、【-- VISUAL --】):
- 正常模式:按ESC键回到
正常模式
,正常模式不能够编辑文本,在该模式下有很多快捷操作使用,如跳转到指定行,切换文档等 - 插入模式:即可以插入文本,编辑文档,只能由
正常模式
进入插入模式
,下面是一些常用
进入插入模式的按键操作
i:在当前光标处进入插入模式a:按下此键向后退一个字符进入插入模式o:按下此键进入当前行的下一行进入插入模式
- 命令模式:在
正常模式下
输入英文状态下的冒号(:
),即进入命令模式,即在此模式可以输入一些命令,并执行,比如保存编辑的文档,退出当前文档编辑,搜索和替换等 - 可视模式 :在
正常模式
下,按v
就进入了可视模式,可视模式能够干嘛,下面会有具体说明的
Vim的配置文件.vimrc(在当前的用户目录下~/.vimrc
):
" 设置文档编码为utf-8(让中文不乱码)set encoding=utf-8" 开启语法高亮syntax on" 显示行号 set number" 突出显示当前行set cursorline" 打开状态栏标尺set ruler" 设置tab键为4个空格(方便不同的编辑器切换的时候不会乱掉格式)set tabstop=4set expandtabset autoindent
2 简单的直接对文档操作
- 初始打开文件就进入了
正常模式
- 只能由
正常模式
进入插入模式
- 只能由
正常模式
进入命令模式
#以下是在终端中创建并打开test.txt文件vim test.txt# 从这里开始已经进入了Vim编辑器,开始进入插入模式i# 输入文本hell vim# 进入正常模式ESC# 进入命令模式:# 输入保存并退出的命令,之后又进入了Linux终端wq
好的,从用vim创建了一个test.txt文档,并编辑了,然后保存退出了。接下来是要进一步操作该文档了,包括怎么在文档中删除,怎么复制,怎么黏贴,怎么向前向后撤销操作,相当于在Windows中掌握的Ctrl+x , Ctrl+c , Ctrl+v , Ctrl+z , Ctrl+y:
# 在正常模式下删除一行dd# 在正常模式下复制一行yy# 在正常模式下向前回撤(undo)操作u# 在正常模式下向后回撤(redo)操作Ctrl + r# 在正常模式下黏贴删除的内容(dd)或者复制(yy)的内容p
3 开始高级一点操作文档
3.1 剪切 复制 黏贴 撤销
我们应当知道用Vim的时候就尽量要脱离鼠标了,鼠标有滚轮,可以翻上翻下,还能够选中文字,进而实现复制或者删除之类的操作,而在Vim中可以用快捷操作和四个方向键(← ↑ ↓ → 或者正常模式下的hjkl四个字母)来实现同样的功能,当然最简单的就是用这四个方向键上下所有移动了,不过文档很长的话,你估计要按一会儿了:
# 正常模式下直接跳转到文档末尾gg# 正常模式下直接跳转到文档头shift + g# 正常模式下跳转到指定行linenum + gg# 正常模式下跳转到行首0 或者shift+6# 正常模式下跳转到行末shift + 4
3.2 文本多行操作和单个字符操作
在第2节中说到的复制黏贴都是一行行来的,怎么按一个个字符来呢?或者按多行来呢?
图1 在可视模式下选中的文本字符
# 在`正常模式`下进入`可视模式`(别告诉我你不记得怎么进入了),通过方向键选中要操作的字符或者行← ↑ ↓ →# 选中待操作的行或者字符后,按 y 键实现复制选中,当然你也可以用 d 实现剪切操作y# 复制完后自动进入正常模式,此时可以使用黏贴操作 p 了或者撤销操作 u 之类的快捷键了p
图2 在可视模式操作后,进入正常模式下黏贴操作的结果
有了多行选中操作功能,那么还可以做什么呢?在编写程序的时候我们还可以用来多行缩进或者多行tab,首先这里先介绍一个单行缩进的办法:
# 光标停留在待缩进的行# 正常模式下,向左缩进,即<<:shift+,,# 正常模式下,向右缩进,即>>:shift+..
多行缩进操作:
# 用上述中的多行选中方式,选中你待缩进的程序代码# 然后< 表示向左缩进,而> 表示向右缩进,即shift+,shift+.# 当然还可以不用上述方式选中即可多行缩进: 要缩进的行数+<<(正常模式下)# 从当前行开始,向左缩进6行(只缩进一个tab)6<<
如何自动缩进呢?而不只是一个tab制表符
# 在正常状态下,行数 + ==,自动对齐代码# 从当前行开始,自动对齐7行代码7==
3.3 在文档中搜索和替换
在Windows系统中,还有一个常用的操作就是Ctrl+f
或者是Ctrl+h
,那么在Vim中如何实现呢?
在Vim的查找
是简单的,反斜杠加上你要查找的字符串:
# 在正常模式/find_str# 查找到了要的多个find_str,可以键入n来切换到下一个find_strn# 查找到了要的多个find_str,可以键入n来切换到上一个find_strshift+n
但是查找并替换就有点小规则了,查找替换
的命令的格式(命令模式下操作)是如下的,已经查找好了,直接按ESC
键可以退出查找:
:[range]s/from/to/[flags]
[range]=% ,全文查找1,10 ,从第1行到第10行中查找3,只在第三行中查找[from]待查找字符或字符串[to]待替换的字符[flags]= c confirm,每次替换前询问;e error, 不显示错误;g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;i ignore,忽略大小写
下面是一些常用的查找替换操作:
# 全文查找并替换(有提示 (y/n/a/q/l/^E/^Y)? ):%s/find_str/replace_str/c# 当前行查找,查完就退出查找(有提示 (y/n/a/q/l/^E/^Y)? ):s/find_str/replace_str/gc
4 多标签操作(多文档操作)
上面的三节够我们在一个文档里面进行操作了,那么如果想同时在一个界面里操作多个文档呢?就向浏览器一样可以有很多个页面,鼠标想点哪个页面就点哪个页面,然后进行浏览和操作呢?
图3 多个文档操作的界面(文档标签处的+表示未保存)
# 在终端中打开多个文档vim -p test1.txt test2.txt test3.txt# 或者用Vim打开了一个文档test1.txt后,接着想在Vim内直接打开当前目录下的另一个文件test2.txt(命令模式下):tabnew ./test2.txt# 想在多个文档之间切换,循环切换查看---方式一,正常模式下gt# 想在多个文档之间切换,查看上一个文档---方式二,命令模式下:tabp# 想在多个文档之间切换,查看下一个文档---方式三,命令模式下:tabn# 想关闭除当前文档之外的其他文档:tabo# 如果打开的文档有好几十个,可以在命令模式下,用该命令来选择选中哪个文档来查看:tabs
5 其他的一些有意思的操作
5.1 Vim后台挂起
# Vim挂起:当不想要关闭当前文档,但是想进入[终端]输入一些命令的时候,可以在[命令模式]下::shell# 进入终端了,然后操作完你的命令了,想回到之前编辑的文档界面(注意你当前在终端里):exit
5.2 Vim锁定
以前在Window系统的时候,喜欢编辑完后按Ctrl+s
来保存文档,这是个很好的习惯,但是在Vim中却不是了,因为这个操作在正常模式下会让你的Vim锁住,光标啥的都移动不了了,那么怎么来解锁呢?
# 正常模式下锁住Vimctrl+s# 解锁Vimctrl+q
5.3 字符串自动补全(你当且认为是代码补全)
Vim是很强大的,利用插件可以实现很高大上的功能,但是上面的所说都是基于默认的Vim,没有任何插件的,这小节所说的字符串自动补全也是一样,这个在做Linux下程序开发的时候,和实用的,类似Notepad++这个软件中的字符串补全功能:
图4 字符串自动补全功能视图
# 在插入模式下,插入模式下哦Ctrl+n
—————————————————————————-
上面的操作是可以让一个程序员足够快的开发项目的,后面Vim的技能,慢慢在求知路上积累了。
- Linux---够开发过程中使用的Vim命令
- Linux开发中,make命令的使用
- 使用linux过程中使用频率最高的命令
- Linux环境下开发过程中常用的shell命令
- Linux 中VIM 的使用
- linux中vim的使用
- Linux中VIM的使用
- vim开发的基本命令使用
- linux中vim命令
- linux vim命令使用
- vim使用过程中遇到的一系列问题
- linux中vim命令的细节
- Linux中vim的命令备忘录
- [linux]vim的常规命令使用
- Linux vim编辑器常见命令的使用
- Linux基本命令及vim的使用
- vi/vim使用进阶: 在VIM中使用GDB 把VIM打造成Linux下程序开发的IDE利器
- linux 开发程序过程 vim
- Javascript 对象封装的例子
- Java EE 远程客户的访问EJB实现实例(Jboss wildfly)
- Spring集成Shiro时内存溢出的问题分析
- VC无闪烁刷屏技术的实现
- CS231n 卷积神经网络与计算机视觉 9 卷积神经网络结构分析
- Linux---够开发过程中使用的Vim命令
- VC启动窗口画面制作方法研究
- leetcode #49 in cpp
- 如何安装和使用Alcatraz
- 单例设计模式
- leetcode #50 in cpp
- 微软亚洲研究院比赛记:hackathon! MPC,Fight!
- 自旋锁的故事
- WebCollector 2.x 教程列表