作者:Mintimate

博客:https://www.mintimate.cn

Mintimate’s Blog,只为与你分享

文章目录

  • Vim
    • 发展历史
    • Vi&Vim
    • Nano&Emacs
  • 视频教程
  • Vim安装
    • Linux
    • macOS
    • Windwos
      • 1. 下载Vim
      • 2. 创建&解压
      • 3. 环境变量
  • Vim基础使用
    • 1. 命令模式
    • 2. 输入模式
    • 3. 指令行模式
  • Vim分屏
  • Vim安装插件
    • 1. vim-plug
    • 2. 安装插件
    • 3. 卸载插件
  • Vim番外
  • END

Vim

Vim是一款跨平台的文本编辑器,不但可以运行在Unix,还可以运行在GNU、Windows平台,并且还支持丰富的插件,助力开发和使用。

很多人喜欢用Nano,或者是Emacs、Vi,其实都是文本编辑器,看个人习惯。

我个人觉得,Nano过于简单,Emacs过于强大,Vim比较折中……

发展历史

Vim是从vi发展出来的一个文本编辑器,相对于增强版本的vi。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的自由软件。

2008年8月发布的Vim 7.2,算是一个“里程碑式”的版本,合并了Vim 7.1以来的所有修正补丁,并且加入了脚本的浮点数支持,我们这篇文章,最好使用Vim 7.2以后的版本。

# 查看当前vim版本
vim --version

Vi&Vim

Vi是“Visual”的不正规的缩写,Vi于1976年以BSD协议授权发布。Vi拥有众多的衍生项目,Vim就是其中一个;主要区别:

  • Vim完全继承Vi的原有操作
  • Vi仅支持单次撤回,Vim支持多次撤回。
  • Vim用于丰富的插件系统。
  • Vim支持更多操作系统平台(如:Windows)

Nano&Emacs

前文也说过这两个文本编辑器,这里也简单提一下:

Nano是非常轻便的文本编辑工具,很容易上手。如果您只想简单地编辑一些文本文件,Nano就足够了。(Vim对新手十分不友好,我在B站做一些简单视频教程,用Vim,有些小白用户就无法理解,但是Nano就好很多)。

Emacs相比Vim,更加强大,和上次介绍的screen工具一样,是“元老级”的GNU计划软件;使用Emacs还可以上网嗷。不过,**个人认为使用难度,比Vim还高很多。**有机会,再出一篇文章嗷。

视频教程

没错嗷,我们为了这篇文章,出了个12分钟快速入门教程嗷。感兴趣可以看看嗷(请务必一键三连嗷):

  • https://www.bilibili.com/video/BV1kq4y197t4

如果你觉得这视频的不错的话,欢迎打赏支持嗷:爱发电

Vim安装

想学Vim的使用,起码得先会安装吧╮( ̄▽ ̄"")╭。

前文说到,Vim跨平台,接下来就教大家在三大平台上怎么安装。

Vim其实是可以用GUI的,但是一般很少用GUI版本。主要讲命令行版本。

Linux

其实,一般的Linux发行版本和服务器厂商提供的镜像,是自带Vim的。比如腾讯云轻量应用服务器的Debian系统,均自带Vim:



如果你使用其他镜像,或者没安装Vim。使用软件包管理器即可:

# CentOS
yum install vim
# Ubuntu/Debian
apt-get install vim
# Archlinux
pacman -S vim


当然,你也可以源码编译,官方源码下载

编译参数参考:

# 依赖安装
sudo apt install git
sudo apt install make
sudo apt install clang
# 当前在源码内
./configure
make && make install

macOS

macOS一般自带Vim,但是如果你想自己安装。可以和上文一样手动编译,也可以使用Homebrew进行安装:

brew install vim

Homebrew版本vim优先级高于系统自带版本。如果不知道怎么安装Homebrew:Homebrew安装方法

Windwos

没错,Vim是垮系统的,Windows也可以安装。(这不比系统自带的文本编辑器好用?)

1. 下载Vim

首先我们进入Vim项目地址,下载Windows版本Vim:vim-win32-installer

2. 创建&解压

之后,我们在电脑的合适位置,创建一个目录,并解压Vim到其中:

3. 环境变量

最好,我们设置环境变量即可:

这个时候,我们使用CMDPowershellWindwos Terminal就可以使用Vim了:

Vim基础使用

首先,Vim的具体使用,可以参考官方文档:Vim help

Vim基本分为三个基础模式:

  • 命令模式(Command mode)
  • 输入模式(Insert mode)
  • 底线命令模式(Last line mode)

1. 命令模式

在使用vim打开或创建文件时,就是命令模式模式,比如:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BxmovieW-1629856704917)(https://imagehost.mintimate.cn/post_vim/0330b5d1e39ac2fc45f5264ed0f23aa2.png)]

这个时候,使用方向键,就是基础的上下行移动。其他的按键:

键盘上的组合按键 说明
h 或方向键盘(←) 光标向左移动一个字符
j 或方向键盘(↓) 光标向下移动一个字符
k 或方向键盘(↑) 光标向上移动一个字符
l 或方向键盘(→) 光标向右移动一个字符
【Ctrl + f】 或 【Page Down】 屏幕『向下』移动一页 (常用)
【Ctrl + b】或 【Page Up】 屏幕『向上』移动一页 (常用)
G 直达文件末尾(非常常用)
gg 移动到这个档案的第一行,相当于 1G (非常常用)
n n 为数字。光标向下移动 n 行(常用)
u 撤销操作(常用)
nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
n<空格> 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20 则光标会向后面移动 20 个字符距离。
0 或功能键【Home】 这是数字『 0 』:移动到这一行的最前面字符处
$ 或功能键【End】 移动到这一行的最后面字符处
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
Ctrl + d 屏幕『向下』移动半页
Ctrl + u 屏幕『向上』移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行

同时,如果你想格式化代码,可以按:gg=G,即可格式化代码。

2. 输入模式

命令模式基础下,按规定按键即可。规定的按键(默认):

输入按键 描述
i, I 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)
a, A 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。
o, O 进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行; O 为在目前光标所在的上一行处输入新的一行!
r, R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止。

举个例子,在在命令模式基础下:

I即可进入输入模式(编辑模式):

如果你使用的是i,那么按完后,再右移一个字符即可和图片效果一致。

我日常使用,为一般都是按i后,再右移一字符……主要是,按要按一个Shift切换大小写,有点麻烦……

在编辑好内容后,我们按ESC键盘,即可回到命令模式

3. 指令行模式

命令模式下,输入:即可进入指令行模式:

一些指令:

指令行指令 描述
:w 将编辑的数据写入硬盘档案中(不得不用系列)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vim (不得不用系列)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (不得不用系列)
ZZ 这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)
ZQ 不保存,强制退出。效果等同于 :q!
:w 【filename】 将编辑的数据储存成另一个档案(类似另存新档)
:r 【filename】 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w 【filename】 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如『:! ls ~/Downloads』即可在临时察看 Download底下以 ls 输出的档案信息!

举个例子:我们在当前目录下编辑文件,但是想看看外面目录具体有什么文件,进而方便编写文件

回车执行,即可看到效果:

最好,按任意按键即可回到vim内。

Vim分屏

这里简单说一下分屏。

分屏的方法很多,比较简单的是打开文件时候进行分屏:

vim -o/O[n] file1 [file2 ...]

其中:

  • o:垂直分屏
  • O:水平分屏
  • n:可以省略,省略后,由后面file参数决定分屏个数

如:

这个时候,如果想切换激活窗口。可以按Ctrl+w+w,即可顺时针切换。

Vim安装插件

没错,Vim是可以安装插件的,一般插件需要修改文件syntaxfiletype.vim等等,也正因如此,Vim的上手门槛可以说是相当大。但是,在Vim8之后,安装Vim插件变得十分简单。我们可以直接克隆插件到:~/.vim/pack/plugins/start目录内,之后Vim即可生效插件。当然,也很推荐使用一些Vim插件管理器:

  • vim-plug:https://github.com/junegunn/vim-plug
  • Dein.vim:https://github.com/Shougo/dein.vim
  • Vundle.vim:https://github.com/VundleVim/Vundle.vim
  • Pathogen.vim:https://github.com/tpope/vim-pathogen

每个插件用的人都很多,这边就介绍我平常使用的vim-plug

1. vim-plug

vim-plug的安装方法很简单,我们下载plug.vim,并放到用户下的autoload文件夹内

之后编辑~/.vimrc(也就是用户目录下的vimrc文件),添加内容:

call plug#begin('~/.vim/plugged')
call plug#end()

记得保存文件嗷

2. 安装插件

这里我演示安装nginx.vim这个插件,用来格式化(代码高亮)Nginx的Conf文件。在没安装插件前,查看Nginx配置:

之后,我们到.vimrc内添加nginx.vim这个插件:

call plug#begin('~/.vim/plugged')
Plug 'chr4/nginx.vim'
call plug#end()

之后,保存该文件并退出(:wq),重新进入后,输入:PlugInstall:

回车即可自动开始安装:

原理很简单,其实就是vim-plug插件,自动git clone插件到插件文件夹内

这个时候,我们输入:q退出,再看看Nginx的配置文件:

其他实用插件,大家可以到网上自己获取嗷。(比如:自动格式化代码?)

3. 卸载插件

最后,如何卸载插件呢?其实很简单,在~/.vimrc内,删除插件,之后执行:PlugClean即可。具体可以参考官网文档:

Command Description
PlugInstall name … Install plugins
PlugUpdate name … Install or update plugins
PlugClean! Remove unlisted plugins (bang version will clean without prompt)
PlugUpgrade Upgrade vim-plug itself
PlugStatus Check the status of plugins
PlugDiff Examine changes from the previous update and the pending changes
PlugSnapshot! Generate script for restoring the current snapshot of the plugins

Vim番外

其实,Vim也可以愉快地写Markdown,使用项目:Markdown-preview.nvim

之后,编辑.md结尾的Markdown文件,可以调用浏览器进行预览:

END

其实,Vim最为一个强大的文本编辑器,又经过几十年的迭代,已经进入8.x版本,并且即将9.x版本。受限于篇幅,只能讲这么多,但是这些操作已经饱含入门和插件,总体来说够用了。

有机会,进一步给大家进行分享嗷。另外,“挖坑”Emacs,有机会填上~

终端文本编辑神器--Vim命令详解。如何配置使用Vim、Vim插件?相关推荐

  1. linux vim 命令无效,Linux vim 命令 command not found vim 命令详解 vim 命令未找到 vim 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil Vim(ViImproved)编辑器是功 ...

  2. Fedora的systemctl命令详解 Fedora配置IP地址/DNS/Networking

    1.原来的 service 命令与 systemctl 命令对比 demaon 命令 vs systemctl 命令 # 此处是命令对比 分别对比 service命令 和 systemctl 在启动. ...

  3. linux下vim命令详解

    高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器x q     退出记录模式 @x     播放记录在x寄存器中的 ...

  4. linux grep命令详解_Linux 上USB 调试神器lsusb命令详解

    大家好, 我是吉阿, 今天给大家介绍Linux上USB调试工具lsusb命令. ​ USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,早期用于规范电脑与 ...

  5. Linux中vi\vim命令详解

    添加修改配置文件一般都是使用默认的VI编辑器,长期编辑代码的程序员会使用功能更强大的编辑器. 简单介绍下vi编辑器的使用方法: 一.vi可以分为三种状态,分别是命令模式(command mode).插 ...

  6. Linux yum 命令详解 源配置

    Linux yum 命令 yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器. 基于 RP ...

  7. vim的marks命令详解

    前言: vim的marks命令指的是标记文本文件或者文本文件的某一列,从而实现快速跳转.那么,这个命令的实际意义在于提升文本编辑的效率,毕竟,如果有大量的文本文件需要编辑,那么,在各个文件之间的跳转是 ...

  8. ubuntu安装VIM教程与命令详解

    目录 1.VIM简介 2.ubuntu安装VIM 3.安装命令详解 3.1.sudo 3.2.apt-get && install 3.3.vim-gtk 4.VIM参数配置 1.VI ...

  9. 详解Linux系统Vi 和 Vim中正常模式、编辑模式、命令模式相互转化,以及vim命令使用

    详解Linux系统Vi 和 Vim中正常模式.编辑模式.命令模式相互转化 vi 和 vim 的基本介绍 vi 和 vim 的三种常见模式 正常模式 正常模式常用命令 插入模式/编辑模式 命令行模式 v ...

最新文章

  1. 经常使用的时间同步server地址
  2. 2017年6月21号课堂笔记
  3. cvtcolor python opencv_蔡徐坤教你用OpenCV实现素描效果
  4. 关于SQL Tuning的知识体系
  5. 计算机基础中的分层教学,分层教学法在计算机基础课程中的应用研究
  6. 华为天才少年1万块自制机械臂,网友:200万给少了
  7. 弱监督深度学习图像分割综述
  8. FreeRTOS+STM32F103串口通信错误解决方法
  9. 《jQuery Mobile快速入门》—— 1.6 可主题化的设计
  10. mac版有道云笔记切换笔记后内容仍展示前一个笔记内容问题解决
  11. makefile函数集锦
  12. 沃尔沃汽车:通过基于模型的开发工具实现汽车软件模型结构度量
  13. java集合学习笔记--二维集合HashMap
  14. Linux软件更新与安装
  15. hadoop SLA
  16. 20201024——记录一下自己的前端工程师之路
  17. 时间管理——34枚金币
  18. Java 基础学习之字符串的简单操作和适配器设计模式
  19. PictureSelector 2.0 Android Q 适配之旅。
  20. ZJW系列之简单密码

热门文章

  1. android文件删除工具下载,Coolmuster Android Cleaner下载
  2. (转)iOS 上的相机捕捉
  3. [机器学习] 信用评分卡中的应用 | 干货
  4. RK3288方案开发,RK3288开发板方案,RK3288平板芯片参数资料
  5. EfficientNet迁移学习(四) —— 损失函数解析
  6. 论文阅读笔记:Intriguing properties of neural networks
  7. 使用Ionic.Zip压缩、分卷压缩、解压文件
  8. matlab画双曲线的四种方法
  9. HBuilderX发布小程序打不开微信小程序开发工具
  10. 这一周CSDN人都看了些什么?(5.14-5.20)