第二十二讲——vim文本编辑器 本文共有7158个字,关键词: 打开文件: Vim +12 filename 打开文件后,光标出现在第十二行的第一个字符 Vim + filename 打开文件后,光标处于整个文件的尾部。 Vim +/pattern(正则) 打开文件,定位至第一次被模式匹配的行首 关闭文件: 编辑模式(命令模式),删除,复制 输入模式,敲击动作录入到屏幕 末行模式,在屏幕下方可以键入命令,用于管理文件。 进入vim时,默认是编辑模式 i 当前光标所在字符之前插入数据。 a 在当前光标所在字符之后插入数据 o 在光标所在行的下方新建一行并转为输入模式 I 在当前光标所在行首插入数据 A 在当前光标所在行尾插入数据 O 在当前行的上方新建一行并插入数据 ESC 退出输入模式,还原为编辑模式 末行模式,必须从编辑模式下键入冒号 :10-20d 删除第10-20行 :w 保存文件,只读文件保存不了,管理员除外。 :q 不保存退出文件 :wq 保存并退出 :q! 强行退出(不保存) 末行模式-编辑模式 esc Vim中移动光标(快速定位) 一 逐字符移动光标 H左 J下 K上 L右 使用数字加上上下左右,可以一次性移动N个字符 二 以单词为单位移动 w: 移至下一个单词的词首 e: 跳至当前或者下一个单词的词尾 b: 跳至当前或者上一个单词的词首 三 行内跳转 数字0:跳到绝对行首 ^: 表示第一个非空白字符的行首 $: 跳至行尾,绝对行尾。 四 行间跳转 ( 或者 ) 在句子(语句间跳转) { 或者 } 在段落间跳转 #G 跳转至第#行 G 跳至最后一行 在末行模式下也可以实现跳转,给出行号,回车即可。 五 翻屏操作(编辑模式) Ctrl + F 向下翻一屏 Ctrl + B 向上翻一屏 Ctrl + D 向下翻半屏 Ctrl + U 向上翻半屏 六 删除单个字符 X:删除光标所在处单个字符 #x: 删除光标所在处及向后的N个字符 七 删除命令 d: 与行内跳转命令组合删除 d:告诉vim编辑器有删除动作。 dd: 删除光标所在行 #dd: 向下删除含光标所在行的n行 在末行模式下可以使用 startADD,endADD d 删除从start开始end结束的行。 相对表示法: .,+6d 从当前行向下删除6行 $ 表示最后一行 + 向下的n行 $-10 倒数第10行 刚刚删除的内容可以粘贴到其他地方(剪切) 八 粘贴命令 大写P:粘贴至上一行(粘贴复制为整行) 小写p:粘贴至下一行(粘贴复制为整行) 复制或者删除的为非整行时, 小写p:粘贴至当前光标的后方 大写P:粘贴至当前光标的前方 九 复制命令y y 告诉vim编辑器进行复制操作 yy 复制以整行 #yy 复制光标所在行开始向下的n行 十 先删除内容在转换为输入模式(修改) c: change 用法同d命令 cc 清空当前行,在转入输入模式 十一 替换 r :替换单个字符 R:转换为替换模式,通过输入覆盖 ESC退出替换模式。 十二 撤销编辑操作(编辑模式) u 撤销前一次的编辑操作,可以连续撤销 vim 至在缓存中保留最近50次的操作。 Ctrl+r: 撤销刚才的撤销操作。 十三 重复此前的操作 “ . ”重复上一次的编辑操作 十四 可视化模式 v/V 进入可视化操作,可以选中光标经过的字符。 v: 按字符选取 V:按矩形块选取。 十五 查找,支持正则表达式。 /pattern模式,从光标向下查找 ?pattren 模式,从光标出向上查找 n: 向下跳转 N:向上跳转 十六 查找并替换(末行模式下) 同sed命令 :startadd,endadd s@pattren@string@@gi i: 忽略字符的大小写 g: 全局替换 1,$ 全文 % vim中的全文指定 十七 使用vim编辑多个文件命令 Vim filename1 filename2 filename3 filename4 如果打开的文件默认是第一个,则可以在末行模式下输入 next: 切换至下一个文件 prev:切换至上一个文件 last: 切换至最后一个文件 first: 切换至第一个文件 q:只能退出当前文件 qa:退出所有文件 十八 分屏显示(窗口拆分) Ctrl+w,s 水平拆分窗口 Ctrl+w,v 垂直拆分窗口 窗口间切换 Ctrl+w 上下左右切换 q:退出当前窗口 qa:退出所有窗口 十九 分窗口显示(多个窗口) Vim -o小写 水平显示窗口 Vim -O大写 垂直显示窗口 二十 将当前文件的部分内容存为另一个文件 末行模式下的w命令 :w 保存为当前文件 :w /path/to/filename 将文件另存为 :startadd,Endaddw /path/to/filename将指定内容另存为 二十一 将另外一个文件的内容附加在当前内容中 :r /path/to 在当前光标后附加一个文件的内容 二十二 跟shell交换(末行模式) :!command 输入shell中的命令 二十三 高级话题 显示、取消行号 Set nu set nonu 行号不是文件的组成部分,只显示当前进程有效 忽略或区分大小写 set ic(ignorecase) set noic 设置自动缩进 Set ai/autoindent set noai 查找到的文本高亮显示 Set hlsearch set nohlserch 语法高亮(语法着色) Syntax on 开启语法高亮 Syntax off 关闭语法高亮 只对当前的vim进程有效,永久 有效需要写入/etc/vimrc ~/.vimrc配置文件。 Vim配置文件 Vim的全局配置文件 /etc/vimrc 对所有用户生效 Vim的用户配置文件,仅对用户生效 ~/.vimrc 影藏文件,如果没有自己创建 当vim在正常编辑的情况下意外退出,会在文件所在目录下生成一个隐藏的swp文件,这时打开文件会有报错信息,可以从中恢复编辑过的内容。 顺便复习一下几个测试表达式的条件所有是在[ ]中括号内进行测试 整数测试: -le -ge -eq -lt -gt 字符测试: == != > < -n测试字符串是否为空 -s字符串是否不空 string 是否不空 文件测试: -d目录 -f文件 -e是否存在 -r是否可读 -w是否可写 -x是否可执行 组合测试: -a 与关系 -o或关系 !非关系 If [ $# -gt 1 –a $# -lt 3 ]等价于if [ $# -gt 1 ] && [$# -lt 3 ] 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 给自己讲linux 2016-12-22 评论 1457 次浏览