Liunx:vim编辑器

什么是vim

  • Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
  • 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
  • vim 的官方网站 自己也说 vim 是一个程序开发工具而不是文字处理软件。
  • vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
    在这里插入图片描述
  • Visual Studio是继承开发环境,啥都给弄好了;vim需要自己配置,就可以实现像在Visual Studio写代码时,换行时自动行首缩进,代码高亮,自动补全括号等等。见文章最后:vim配置。
  • 上图来源见文末参考


vi/vim 的使用

  1. 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
  2. 用户刚刚启动 vi/vim,便进入了命令模式。输入模式,底线命令模式返回至命令模式,按Esc。
  • 特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。
    • 举例来说,要删除 50 行,则是用 『50dd』 ;
      在这里插入图片描述

正常/普通模式(Normal mode)

功能:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
进入Insert mode下,或者到 last line mode

  • 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

光标移动:左下上右

  • 左:「h」
  • 下:「j」
  • 上:「k」
  • 右:「l」
  • 默认单行移动:例如向下移动 30 行加上想要进行的次数(数字)后,按下动作即可:「30j」

光标移动:行首、行尾、移动到任意行

  • 「^」:移动到光标所在行的“行首”。shift 6…
  • 「$」:移动到光标所在行的“行尾”。shift 4…
  • 「数字」「shift」「g」:移动到任意一行

光标移动:单词为单位

  • 「b」:光标回到上个词的开头
  • 「w」:光标跳到下个词的开头
  • 「e」:光标跳到下个词的词尾

光标移动:文本开始、文本末端

  • 「shift」「g」=「G」:文本末尾。hhh,以前写的有些文章结束标题就是G,看来是vim正统
  • 「gg」:文本开始

文本的:粘贴

  • 「p」:将缓冲区内的字符贴到光标所在位置。
  • 「数字n」「p」:将缓冲区的内容复制 n 次。

文本的:单词(字)复制

  • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  • 「数字n」「yw」:复制 n 个字符到缓冲区。

文本的:行复制

  • 「yy」:复制光标所在行到缓冲区。
  • 「数字n」「yy」:复制光标 n 行到缓冲区。
  • 使用:「yy」以后,光标移动到要粘贴的位置,按「p」
  • 从一个文件复制到另一个文件:nyy+ p

文本的:字符左删、右删

  • 「x」:每按一次,删除光标所在位置的一个字符
  • 「数字n」「x」:「6x」表示删除光标所在位置的 “后面(包含自己在内)” 6个字符;
  • 「数字n」「shitf」「x」:例如,「20X」表示删除光标所在位置的“前面”20个字符,不加 n 默认1.

文本的:行删除

  • 「dd」:删除光标所在行
  • 「数字n」「dd」:从光标所在行开始删除 n 行

文本修改:局部替换字符

  • 「r」:替换光标所在处的字符。
  • 「数字n」「r」:替换光标所在处的 n 个字符。

文本修改:替换模式

  • 「shift」「r」:进入替换模式,可以一直输入;
  • 直到按下「ESC」键为止。

文本修改:大小写切换

  • 「shift」「~」:按一下切换一次,一直按,一直切换到行尾。

撤销操作

  • 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
  • 「ctrl + r」: 撤销的恢复;撤销「u」的操作。

插入模式(Insert mode)

功能:只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
该模式就是日常使用的文本编辑。

  • 按「i」切换进入插入模式「insert mode」,是从 光标当前位置 开始输入文件;
    按「a」进入插入模式后,是从   目前光标所在位置的下一个位置   开始输入文字;
    按「o」进入插入模式后,是从  插入新的一行,从行首  开始输入文字。

末(底)行模式(last line mode)

功能:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

  • 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

显示行号

  • 显示行号,设定之后,会在每一行的前缀显示该行的行号:set nu文本写了几行显示几行,回车显示新行号…
  • 与 set nu 相反,为取消行号!set nonu

跳到文件中的某一行

  • 「shift」「:」:在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

查找字符

  • 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
  • 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

执行bash命令,源文件分屏切换

批量替换:行单词替换

  • 语法::{作用范围}s/{目标}/{替换}/{替换的标志}
    • g 即是替换标志之一,表示全局 global 替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:
  • 把当前光标所在行的 zempty 替换成 handsome
:s/zempty/handsome/g

批量替换:全文某单词的替换

  • 把全文中的 zempty 替换成 handsome
:%s/zempty/handsome/g

批量替换:指定行的单词替换

  • n1 和 n2 值得是行号,将会替换掉 n1 到 n2 的所有 zempty 为 handsome.
:n1,n2s/zempty/handsome/g

保存文件离开vim

  • 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
    「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

Vim配置

  • 关于修改配置相关的东西,建议新建一个账号练手试水,没问题再换账号操作。
  • 美化高亮,换行自动缩进,补全括号等,提示vim模式信息等等各种操作。
  • run command”(运行命令)…"rc”是任何脚本类文件的后缀,这些脚本通常在程序的启动阶段被调用,通常是Linux系统启动时。

配置文件的位置

  1. root账户目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  2. 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。进入自己的主工作目录 cd ~,通常已经存在一个.vimrc文件,如果不存在,则创建之。
  3. vim .vimrc,开始编写配置。
[tmpp@VM-12-7-centos ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config
[tmpp@VM-12-7-centos ~]$ touch .vimrc
[tmpp@VM-12-7-centos ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config  .vimrc
[tmpp@VM-12-7-centos ~]$ vim .vimrc
....

简单配置测试

  • 设置语法高亮: syntax on
  • 显示行号: set nu
[tmpp@VM-12-7-centos ~]$ vim .vimrc
[tmpp@VM-12-7-centos ~]$ cat .vimrc
syntax on
set nu
set shiftwidth=4
[tmpp@VM-12-7-centos ~]$ vim tt.c
[tmpp@VM-12-7-centos ~]$ cat tt.c
#include<stdio.h>
int main()
{
    return 0;
{
//宽度还需要识别代码块内,两个大括号之间,回车换行什么的插件,才可以实现自动缩进..
  • 一键式vim环境安装包,可以搜一键化配置vim的方案,vim常见插件等等…
    • 帮助对vim配置方法不熟悉的新手封装的一键式vim环境安装包. 主要针对终端vim用户, 适合远程ssh连接Linux服务器进行开发的场景…

VIM的批量注释

  • 替换命令:
  • 批量注释,使用下面命令在指定的行首添加注释。
    • 使用名命令格式: :起始行号,结束行号s#^#注释符#g(注意冒号)。
    • :10,20s#^#//#g
  • 取消注释:
    • 使用名命令格式: :起始行号,结束行号s#^注释符##g(注意冒号)。
    • :10,20s#^//##g

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值