linux学习笔记之--vim 程序编辑器
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
1 图解vim各命令操作
2 命令模式(command mode)
控制屏幕光标的移动,进行文本的删除、复制等文字编辑工作(不使用[Del]键和[Backspace]键)以及进入插入模式,或者回到底行模式。
1) 移动光标
vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母“h”、“j”、“k”、“l”分别控制光标左、下、上、右移一格。
按“ctrl+b”:屏幕往后移动一页。
按“ctrl+f”:屏幕往前移动一页。
按“ctrl+u”:屏幕往后移动半页。
按“ctrl+d”:屏幕往前移动半页。
按数字“0”:移动到文本的开头。
按“1G”或者“gg”:移动到文件首。
按“G”:移动到文件的最后。
按“$”:移动到光标所在行的行尾。
按“^”:移动到光标所在行的行首。
按“w”:光标跳到下个字的开头。
按“e”:光标跳到下个字的字尾。
按“b”:光标回到上个字的开头。
按“nl”或者“n->”:光标移动该行的第n个位置,例如:“5l”表示移动到该行的第5个字符。
2) 删除文字
“x”:每按一次,删除光标所在位置的后面一个字符。
“nx”:例如:“6x”表示删除光标所在位置后面6个字符。
“X”:大写的X,每按一次,删除光标所在位置的前面一个字符。
“xX”:例如:“20X”表示删除光标所在位置前面20个字符。
“dd”:删除光标所在行。
“ndd”:从光标所在行开始删除n行。例如:“4dd”表示删除从光标所在行开始的4行字符。
3) 复制
“yw”:将光标所在之处到字尾的字符复制到缓冲区中。
“nyw”:复制n个字到缓冲区。
“yy”:复制光标所在行到缓冲区。
“nyy”:例如:“6yy”表示复制从光标所在行开始6行字符。
“p”:将缓冲区内的字符写到光标所在位置。
4) 替换
“r”:替换光标所在处的字符。
“R”:替换光标所到处的字符,直到按下“ESC”键为止。
5) 撤销上一次操作
“u”:如果误执行一个命令,可以马上按下“u”,回到上一个操作。按多次“u”可以执行多次撤销操作。
6) 更改
“cw”:更改光标所在处的字到字尾处。
“cnw”:例如:“c3w”表示更改3个字。
7) 跳至指定的行
“ctrl+g”:列出光标所在行的行号。
“nG”:例如:“15G”,表示移动光标到该文件的第15行行首。
8) 存盘退出
“ZZ”:存盘退出
9) 不存盘退出
“ZQ”:不存盘退出
3 插入模式(Insert mode)
在一般模式中可以进行删除、复制、粘贴等等的操作,但是却无法编辑文件内容!要按下『i, I, o, O, a,A, r, R』等任何一个字母之后才会进入编辑模式。通常在 Linux 中,按下这些按键时,在画面癿左下方会出现『 INSERT戒 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式。
1) 进入插入模式
按“i”:从光标当前位置开始输入文件。
按“a”:从目前光标所在位置的下一个位置开始输入文字。
按“o”:插入新的一行,从行首开始输入文字。
按“I”:在光标所在行的行首插入。
按“A”:在光标所在行的行末插入。
按“O”:在光标所在的行的下面插入一行。
按“s”:删除光标后的一个字符,然后进入插入模式。
按“S”:删除光标所在的行,然后进入插入模式。
2) 从插入模式切换为命令行模式
按“ESC”键盘。
4 底行模式(last line mode)
在使用末行模式之前,请记住先按“ESC”键确定已经处于命令行模式后,再按冒号“:”即可进入末行模式。
1) 列出行号
“set nu”:输入“set nu”后,会在文件中的每一行前面列出行号。
2) 取消列出行号
“set nonu”:输入“set nonu”后,会取消在文件中的每一行前面列出行号。
3) 搜索时忽略大小写
“set ic”:输入“set ic”后,会在搜索时忽略大小写。
4) 取消搜索时忽略大小写
“set noic”:输入“set noic”后,会取消在搜索时忽略大小写。
5) 跳到文件中的某一行
“n”:“n”表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车就会跳到文本的第15行。
6) 查找字符
“/关键字”:先按“/”,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按“n”,往后查找一个关键字。
“? 关键字”:先按“?”键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按“?”,往后查找一个关键字。
7) 运行shell命令
“!cmd”:运行shell命令cmd。
8) 替换字符
“s /SPARCH/REPLACE/g”:把当前光标所处的行中的SEARCH单词替换成REPLACE,并把所有SEARCH高亮显示。
“%s /SPARCH/REPLACE”:把文档中所有SEARCH替换成REPLACE。
“n1,n2 s /SPARCH/REPLACE/g”:n1、n2表示数字,表示从n1行到n2行,把SEARCH替换成REPLACE。
9) 保存文件
“w”:在冒号输入字母“w”就可以将文件保存起来。
10) 离开vi
“q”:按“q”即退出vi,如果无法离开vi,可以在“q”后面一个“!”强制符离开vi。
“qw”:一般建议离开时,搭配“w”一起使用,这样在退出的时候还可以保存文件。
附录:
Vim 配置详解
转载于:https://www.cnblogs.com/bbsno1/p/3271462.html
linux学习笔记之--vim 程序编辑器相关推荐
- linux学习笔记:vim编辑器基本操作(附vim 键盘图)
vim 有三种模式: 命令模式(Command mode) 插入模式(Insert mode) 底线命令模式(Last line mode) 默认打开vim,即进入命令模式. 接下来,英文输入状态下, ...
- Linux学习笔记8——VIM编辑器的使用
在ubuntu中,敲入命令行:sudo apt-get install vim,然后输入系统密码,确认Y,即可下载vim 按下vim,在后面跟上文件的路径,即可进入文件到编辑模式,如果不存在该文件,将 ...
- linux学习笔记:vim编辑器的各种用法操作命令
vi/vim 按键说明: 第一部份:一般模式可用的光标移动.复制粘贴.搜索替换等 移动光标的方法 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 ...
- Linux学习笔记三--vim
一般模式 按下i进入编辑模式,此时左下角出现--INSERT--,键盘上除了[Esc]外,其他按键就作为一般的输入,进行任何的编辑.一般模式下":q!"不保存离开,":w ...
- Linux学习笔记:rpm程序包管理
以CentOS为例,rpm程序包管理器的相关内容如下: CentOS的程序包管理器: 程序包的命名规则: 源代码包: software_name-VER ...
- Linux学习笔记之Vim总结
Vim简介 Vim是一个功能强大的全屏幕文本编译器,是Linux/UNIX上最常用的文本编译器, 它的作用是建立.编辑.显示文本文件 Vim没有菜单,只有命令 Vim常用操作 :是命令模式下输入 Vi ...
- Linux学习笔记之vim的写代码美化优化
语法补全用的是YouCompleteMe - Vim的终极自动完成插件YouCompleteMe(YCM)是Vim的快速,类型代码完成引擎.它结合了几个来源的输出并对其进行了优先排序: 基于标识符的引 ...
- Linux学习笔记(二)(Vim文本编辑器 权限管理(用户,用户组) 系统相关(磁盘,进程))
Linux学习笔记(二) 5.账号管理 概述 一.用户账号管理 概述 1. 添加账号 :useradd(`useradd 选项 用户名`) 2. 删除帐号(`userdel 选项 用户名`) 3. 修 ...
- 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)...
第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...
最新文章
- 春节特惠活动┃给孩子讲100个科学道理,不如带他做这些趣味实验!
- python中的分号
- *如何循序渐进向DotNet架构师发展(转)
- 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
- nodejs调用函数和模块
- oracle ogg 12c mysql_Oracle GoldenGate 下载
- new delete 来申请动态二维数组空间
- 导出数据库设计文档的几种方案
- 上月和本月对比叫什么_环比增长率怎么算月度(本周比上周是同比还是环比)...
- Android 百度地图--定位、周边搜索
- Unity Shader-Command Buffer的使用(景深与描边效果重置版)
- 思考与总结【3】:专注于一件事
- 穷人最缺少的不是金钱,而是野心
- XMind导入Markdown(利用Typora导出opml)
- 数字旅游解决方案_什么是数字标牌?
- Mysql中CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别
- 878. 第 N 个神奇数字(二分查找+数学)| 1819. 序列中不同最大公约数的数目(枚举+数学)
- GRUB2引导ISO
- 各国语言文化代码和国家地区简写代码表
- VB版 植物大战僵尸修改器
热门文章
- 网站假设php,PHP个人网站架设连环讲(一)
- JZOJ 4919. 【NOIP2017提高组模拟12.10】神炎皇
- vb计算机水平考试笔试,2014计算机考试二级VB笔试答题技巧汇总
- texmaker中图片过大怎么办_【社工面试】社区居民楼起火,你怎么办?
- php三表关联,详解Yii2 hasOne(), hasMany()实现三表关联的两种方法
- C#接口(Interface)理解
- mysql读写分离有用吗_MySQL的使用中实现读写分离的教程
- BZOJ-1007-水平可见直线-HN2008
- 2021.02.05 Visual QA论文阅读
- ECCV 2018 MemTrack:《Learning Dynamic Memory Networks for Object Tracking》论文笔记