0x00 链接

0x01 准备

(1)下载与安装

  • 官网地址找到 Download 标签,在其中根据操作系统选择相应的版本,以下以 Windows 为例
  • 点击 vim-win32-installer site下载链接,根据系统位数下载相应的.exe.zip文件
    • 32位——x86
    • 64位——x64
  • 安装路径建议不设置在 C 盘中,安装内容建议使用完全

(2)快捷方式说明

  • gvim:正常模式标准的 Vim(正常开发的时候用)
  • gvim read-only:只读模式的 Vim(防误删误改方便查阅代码)
  • gvim easy:启动的时候是插入模式,适合普通 Windows 用户的习惯

(3)禁止 Vim 生成un~文件

当前小节内容参考自《禁止vim生成 un~文件 | 博客园-王学长》和《vim/gvim怎么禁止生成un~文件 | 百度经验

  • 这是 Vim 的 undofile 和备份文件,可以让你在关闭文件后再次打开时还可以撤销上次的更改

  • 取消此功能的方法:在 Vim 软件安装目录中找到_vimrc,使用记事本打开,在其写入以下内容

    set noundofile
    set nobackup
    set noswapfile
    • 如果在 Windows 中,上述设置需要在 Vim 安装目录下的vimrc_example.vim中进行设置

      • 原始设置内容:

        if has("vms")
        set nobackup " do not keep a backup file, use versions instead
        else
        set backup " keep a backup file (restore to previous version)
        if has('persistent_undo')
        set undofile " keep an undo file (undo changes after closing)
        endif
        endif
      • 修改之后:

        if has("vms")
        set nobackup " do not keep a backup file, use versions instead
        else
        set nobackup " keep a backup file (restore to previous version)
        if has('persistent_undo')
        set noundofile " keep an undo file (undo changes after closing)
        endif
        endif
  • 如果想使用这个功能的话,但是不想被那些文件烦的话,还可以写入

    undodir=~/.undodir

(4)字体、中文、光标、行号、语法高亮、缩进、括号补全、备份与历史记录插件(可选操作)

当前小节内容参考自《windows10下安装、配置vim及YCM安装 | CSDN-既往不恋未来不迎

  • 以下设置写入至 Vim 配置文件——_vimrc
  1. 字体

    set guifont=Consolas\ for\ Powerline\ FixedD:h16
    • 字体:Consolas for Powerline FixedD

    • 字号:16

    说明:等于号的右边和冒号之间是电脑上安装的某个字体的名字,注意字体中有空格的话,需要使用反斜杠\来对空格进行转义。冒号之后设置的是字体的大小。

  2. 中文

    " 设置编码格式
    set encoding=utf-8
    set langmenu=zh_CN.UTF-8
    set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
    set fileencoding=utf-8
    " 解决菜单乱码
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    " 设置中文提示
    language messages zh_CN.utf-8
    " 设置双字宽显示,防止有些字符显示不出来
    set ambiwidth=double
  3. 光标

    " 光标设置成块状且禁止闪烁
    set gcr=a:block-blinkon0
    " 显示光标当前位置,右下角可看到当前行和列数
    set ruler
    " 高亮显示当前行/列
    set cursorline
    set cursorcolumn
    " 高亮显示搜索结果
    set hlsearch
  4. 行号显示

    set number
  5. 语法高亮

    " 开启语法高亮功能
    syntax enable
    " 允许用指定语法高亮配色方案替换默认方案
    syntax on
  6. 缩进

    " 自适应不同语言的智能缩进
    filetype indent on
    " 将制表符扩展为空格
    set expandtab
    " 设置编辑时制表符占用空格数
    set tabstop=4
    " 设置格式化时制表符占用空格数
    set shiftwidth=4
    " 让vim把连续数量的空格视为一个制表符
    set softtabstop=4
  7. 括号补全

    inoremap ' ''<ESC>i
    inoremap " ""<ESC>i
    inoremap ( ()<ESC>i
    inoremap [ []<ESC>i
    inoremap { {<CR>}<ESC>O
    inoremap < <><ESC>i
  8. 备份与历史记录

    " 禁止备份
    set nobackup
    " 保留历史记录
    set history=500

(5)插件(可选操作)

当前小节内容参考自《windows10下安装、配置vim及YCM安装 | CSDN-既往不恋未来不迎

a. 插件管理插件——Vundle

  1. 打开目录 C:/Users(用户)/用户名 ,此处打开命令行(该目录下可以找到 vimfiles 文件夹)

  2. 从 github 上克隆下来 Vundle:git clone https://github.com/VundleVim/Vundle.vim.git ~/vimfiles/bundle/Vundle.vim 放在vimfiles文件夹里

  3. 克隆完成后,在_vimrc中添加以下配置

    " vundle插件环境设置
    filetype off
    set rtp+=~/vimfiles/bundle/Vundle.vim
    " vundle管理的插件列表必须位于vundle#begin()和vundle#end()之间
    call vundle#begin()
    " 插件管理插件
    Plugin 'VundleVim/Vundle.vim'
    " 主题
    Plugin 'altercation/vim-colors-solarized'
    Plugin 'tomasr/molokai'
    Plugin 'morhetz/gruvbox'
    Plugin 'vim-airline/vim-airline-themes'
    " 自动补全
    Plugin 'Valloric/YouCompleteMe'
    " 底部栏增强
    " Plugin 'Lokaltog/vim-powerline'
    Plugin 'vim-airline/vim-airline'
    " 目录树
    Plugin 'scrooloose/nerdtree'
    " 格式化代码
    Plugin 'Chiel92/vim-autoformat'
    " 显示缩进线
    Plugin 'nathanaelkane/vim-indent-guides'
    " 彩虹括号
    Plugin 'kien/rainbow_parentheses.vim'
    " 插件列表结束
    call vundle#end()
    filetype plugin indent on
    • Vundle 可以安装、卸载插件

      • 安装插件

        只需在_vimrc文件的vundle#begin()vundle#end()之间加入语句:Plugin [插件名],比如要安装 gruvbox 主题,输入:Plugin 'morhetz/gruvbox'。保存编辑,然后打开 Vim,输入::BundleInstall然后回车,安装完成后就会看到左下角的Done!
      • 查看插件列表

        在 Vim 中输入::BundleList
      • 删除插件

        _vimrc中注释掉或者删掉该插件所对应的行,保存,然后在 Vim 中输入:BundleClean,然后回车,输入y表示确定删除,n表示放弃。
    • 修改主题

      在 Vim 中执行命令 :colorscheme [主题名称]

  4. 更多插件可以参考 Vim Awesome

b. 底部栏增强插件——airline

" airline设置
" 这个是安装字体后 必须设置此项"
let g:airline_powerline_fonts=1
" 底部栏的主题
let g:airline_theme="molokai"
" 打开tabline功能,方便查看Buffer和切换
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
if !exists('g:airline_symbols')let g:airline_symbols = {}
endiflet g:airline_left_sep = '⮀'
let g:airline_left_alt_sep = '⮁'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
let g:airline_symbols.branch = '⭠'
let g:airline_symbols.readonly = '⭤'
let g:airline_symbols.linenr = '⭡'

c. 格式化代码插件——autoformat

" 格式化代码风格设置:C为ANSI
let g:formatdef_ansi='"astyle --style=allman --pad-oper"'
let g:formatters_c=['ansi']
let g:formatters_cpp=['ansi']
au BufWrite * :Autoformat
"设置快捷键F5自动格式化代码并保存
noremap <F5> :Autoformat<CR>:w<CR>

d. 彩虹括号——rainbow_parentheses

" 彩虹括号设置
let g:rbpt_colorpairs = [
\ ['brown', 'RoyalBlue3'],
\ ['Darkblue', 'SeaGreen3'],
\ ['darkgray', 'DarkOrchid3'],
\ ['darkgreen', 'firebrick3'],
\ ['darkcyan', 'RoyalBlue3'],
\ ['darkred', 'SeaGreen3'],
\ ['darkmagenta', 'DarkOrchid3'],
\ ['brown', 'firebrick3'],
\ ['gray', 'RoyalBlue3'],
\ ['black', 'SeaGreen3'],
\ ['darkmagenta', 'DarkOrchid3'],
\ ['Darkblue', 'firebrick3'],
\ ['darkgreen', 'RoyalBlue3'],
\ ['darkcyan', 'SeaGreen3'],
\ ['darkred', 'DarkOrchid3'],
\ ['red', 'firebrick3'],
\ ]
" 开启16对括号匹配
let g:rbpt_max = 16
let g:rbpt_loadcmd_toggle = 0
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces

e. 自动补全——YCM(YouCompleteMe)

省略,如有需要可以参考原文“1.7 自动补全神器YCM(YouCompleteMe)”部分

f. 目录树——nerdtree

" 目录树设置
nmap <silent> <c-n> :NERDTreeToggle<CR>
  • 在一般模式下,按Ctrl+N即可打开目录树

0x02 主要模式

(1)Normal Mode-普通模式

  • 启动 Vim 后默认为普通模式
  • 普通模式是 Vim 的默认模式,它用于导航、编辑和执行各种命令。在这个模式下,你可以移动光标、复制、粘贴、删除文本、搜索、替换等等

(2)Insert Mode-插入模式

  • 在 Normal Mode 中推荐按i可以进入插入模式,按<ESC>键退出
  • 插入模式用于输入和编辑文本,就像其他常见的文本编辑器一样。在插入模式下,你可以直接键入文本

(3)Command Mode-命令模式

  • 在 Normal Mode 中按:/?可以进入命令模式,按<ESC>键退出
  • 命令模式用于执行各种高级操作,如保存文件、搜索和替换、设置编辑器选项等

(4)Visual Mode-可视模式

  • 在 Normal Mode 中按v可以进入可视模式,按<ESC>键退出

(5)Replace Mode-替换模式

  • 在 Normal Mode 中按R可以进入替换模式,按<ESC>键退出

(6)Select Mode-选择模式

  • 按住<Shift>键以及方向键即可进入选择模式,按<ESC>键退出

0x03 操作(2006)

当前节内容参考自 ViEmu

(1)basic editing

  • 在普通模式中,h j k l 是 vi/vim 的光标移动键,相比方向键更容易操作
  • 在普通模式中,按 i 键进入插入模式,光标从块状变为竖线,此时可以输入文本,按ESC返回普通模式
  • 在普通模式中,按x键删除当前字符,或按X键删除左侧的字符
  • 在插入模式中,按A键在行末插入文本
  • 在普通模式中,按u键撤销最后的操作——传统的 vi 仅能撤销一级,但是 Vim 支持无限制撤销(CTRL+R还原操作)
  • 0键可以直接跳转至行首,$键可以直接跳转至行末,^键可以直接跳转至首个非空白位置
  • 在普通模式中,按w b e键可以按照所有字母数字或标点符号的序列移动光标
    • 对语句function(x, y, z);的分割示例:function ( x , y , z );
  • 在普通模式中,按W B E键可以按照无空白字符块的序列移动光标
    • 对语句function(x, y, z);的分割示例:function(x, y, z);
  • 在插入模式中,按R键可以使用覆写光标进行插入文本,此时键入的文本会覆盖光标所在位置已存在的文
  • 在命令模式中,使用命令:w可以保存文本,使用:q命令可以退出

(2)operators & repetition

  • 在普通模式中,按f键再按另外一个需要查询位置的字符键,光标会跳转至这个字符在当前行所在的位置

    • 输入fb,光标悬停位置斜体示例:zabcd
  • 在普通模式中,按t T键可以做到与f键相同的功能,区别在于光标会正好停在该字符之前的字符
    • 输入tb,光标悬停位置斜体示例:zabcd
  • 在普通模式中,按d键以及动作键可以删除在光标和动作键描述的内容之间的文本,如dwdf
  • 在普通模式中,按c键可以做到与d键相同的功能,区别在于删除完成后会进入插入模式
  • 一些动作键如j k是线条化的,会删除从起始行到结束行全部的内容
  • 在普通模式中,.键可以重复最后一次输入的动作,包括文本输入、删除等
  • 在普通模式中,d2w可以删除光标后2个使用w选择的内容;d2t,可以删除光标后全部内容直至第2个逗号前
  • 在普通模式中,2i可以重复在完成输入操作按下ESC之后文本
  • 在普通模式中,重复操作键两次可以操作当前行,如ccdd
  • 在普通模式中,按v键可以进入可视模式(仅限 Vim 中)。移动时,文本将高亮显示。按下操作键可对选中的文本进行操作
  • 在普通模式中,按V键可以进入可视行模式,与按v键的功能相同,区别在于会按行高亮进行操作
  • 在可视模式中,按CTRL+v可以选中矩形块

(3)yank & paste

  • 在普通模式中,按y键以及动作键可以复制动作键选中的内容

    • 该功能也可以在可视模式中执行
    • 当文本使用d c x删除后也会被复制
  • 在普通模式中,按p键可以在光标的(如果按字符则右侧;如果按行则另起一行)后粘贴y键复制的内容
  • 在普通模式中,按P键可以在光标(如果按字符则右侧;如果按行则另起一行)前粘贴y键复制的内容
  • 在普通模式中,按yy可以复制当前行
  • 在普通模式中,按"键加一个a-z范围内的字符在任何复制/删除/粘贴命令前可以选择一个寄存器。一个在复制/删除前的A-Z的寄存器意思是“附加副本”。"*"+可以选择系统的粘贴板
  • 在普通模式中,按o键可以在当前行下的空行中进入插入模式
  • 在普通模式中,按O键可以做到与o键相同的功能,区别在于在当前行上的空行进入

(4)searching

  • 在普通模式中,/是基本的搜索动作。在键入/后键入要搜索的文本,然后按回车键,光标会定位在首次查找到的位置。作为一个动作,可以在操作符之后使用它,也可以在可视模式下使用
  • ?可以做到与/键相同的功能,区别在于光标会定位到最后一个符合查询结果的位置
  • n可以在同一方向重复最后一次的搜索,N可以在反方向重复最后一次搜索
  • *可以向前搜索光标下的标识符的下一个实例
  • #可以做到与*键相同的功能,区别在于向后搜索

(5)marks & macros

  • 在普通模式中,按m键以及一个a-z字符键可以来设置标记
  • 在普通模式中,按`` 键以及一个a-z`字符键可以跳转至该字符键对应的标记
  • 在普通模式中,按'键以及一个a-z字符键可以跳转至在标记所在行第一个非空白位置
  • A-Z标记是全局的,a-z标记是每个缓冲区的
  • ``.`可以指到上次修改的位置
  • 在普通模式中,按q键以及一个a-z字符键可以开始宏记录,再次按q键可以停止宏记录
  • 在普通模式中,按@键以及一个a-z字符键可以回放对应的宏记录
  • 在普通模式中,按@@可以重复最后一次的宏指令

(6)various motions

  • %可以在匹配成对的括号之间进行跳跃
  • H M L分别可以跳转至屏幕显示的顶部、中部、底部
  • G可以跳转到文件的结尾处,或者到#输入之前的行
  • -/+可以跳转至上/下一行
  • ()分别可以跳转至当前语句的开头/结尾
  • {}分别可以跳转至上/下空行
  • [[]]可以跳转至o列上/下的 ‘ { ’

(7)various commands

  • 在普通模式中,按J键可以将当前行与下一行或当前可视选择中的所有行连接起来
  • 在普通模式中,按r以及一个任意字符可以替换当前字符为键入的任意字符
  • 在普通模式中,Cc$的缩写,修改至行末,完成后会进入插入模式
  • 在普通模式中,Dd$的缩写,删除至行末
  • 在普通模式中,Yyy的缩写,复制整行
  • 在普通模式中,按s键可以删除光标下的字符并进入插入模式
  • 在普通模式中,按S键可以清空当前行并进入插入模式
  • 在普通模式中,按>键以及一个动作键可以缩进一行或多行
  • 在普通模式中,按<键以及一个动作键可以取消缩进
  • 在普通模式中,按=键以及一个动作键可以格式化选中范围内的文本
  • > < =操作在可视模式/可视行模式也可以执行,同时在普通模式中双重输入(如>>)可以操作当前行
  • 在普通模式中,按~键可以切换光标下字符的大小写

0x04 命令速查表(2023)

详细内容参考 vim-chestsheet | github-chloneda

-End-

Vim 安装与基础操作指南的更多相关文章

  1. 编辑器之神VIM 总结(一) 基础部分

     版本号 说明 作者 日期  1.0  vim基础知识 Sky Wang 2013/06/19       概要 vim和emacs,一个是编辑器之神,一个是神一样的编辑器.他们被称是UNIX系统下的 ...

  2. 快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础

    上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是W ...

  3. 给VIM安装插件。让ubuntu的vim强大起来

    简易安装方法: 打开终端,执行下面的命令就自动安装好了: wget https://raw.github.com/ma6174/vim/master/setup.sh -O ma6174_vim_se ...

  4. SVN CentOS7 下配置svn的安装及基础配置介绍

    CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. 七. 一.      实践环境 CentOS 7操作系统(CentO ...

  5. vim学习笔记(一)—— vim安装方法

    一.完全卸载vim的方法 sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除) 二.Vim前言——————“世界上只有三种编辑器,EMA ...

  6. [转] Spark快速入门指南 – Spark安装与基础使用

    [From] https://blog.csdn.net/w405722907/article/details/77943331 Spark快速入门指南 – Spark安装与基础使用 2017年09月 ...

  7. Vim 安装和配置、优化

    Vim 介绍 Vim 官网:http://www.vim.org/ Vim 安装 CentOS:sudo yum install -y vim Ubuntu:sudo apt-get install ...

  8. vim安装不上

    前阵子,刚安装Ubuntu时,安装vim的问题,现在些出来分享一下.apt-get install vim正在读取软件包列表... 完成正在分析软件包的依赖关系树正在读取状态信息... 完成有一些软件 ...

  9. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者

    NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...

  10. mySQL的安装和基础使用及语法教程

    mySQL的安装和基础使用及语法指南 一.MySQL的安装.配置及卸载 1.安装 2.配置 3.mySQL5.1的完全卸载 4.MYSQL环境变量的配置 二.MySQL控制台doc窗口的操作命令 1. ...

随机推荐

  1. Task Manager 的设计简述

    讲解 Task Manager 之前,在这里先介绍一些 Task Manager 会使用到的概念术语. 图数据库 Nebula Graph 中,存在一些长期在后台运行的任务,我们称之为 Job.存储层 ...

  2. 15. JVM垃圾回收器详解

    1. 垃圾回收器的分类 和 GC性能指标 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC ...

  3. kafka---面经

    kafka深入理解 消息队列 作用,优点? 异步:比如查看文章,点赞收藏评论等操作,提升文章热度,提升个人社区贡献度,提升个人社区积分,刷新社区贡献度排行榜.将其他操作放到消息队列,相应的模块从消息队 ...

  4. 使用 Docker 部署 Next Terminal 轻量级堡垒机

    1)Next Terminal 介绍 官网:https://next-terminal.typesafe.cn/ GitHub:https://github.com/dushixiang/next-t ...

  5. gitee的 私人令牌 就是 Gitee Open API 的 access_token

    gitee的 私人令牌 就是 Gitee Open API 的 access_token

  6. C#实现软件开机自启动(不需要管理员权限)

    目录 原理简介 使用方法 完整代码 原理简介 本文参考C#/WPF/WinForm/程序实现软件开机自动启动的两种常用方法,将里面中的第一种方法做了封装成AutoStart类,使用时直接两三行代码就可 ...

  7. 世界银行使用.NET 7开发的免费电子问卷制作系统Survey Solution

    Survey Solution (下文简称SS) 是世界银行数据部开发的一套免费电子问卷制作系统, 官网地址为: https://mysurvey.solutions/, github地址:https ...

  8. MAKEFILE的学习

    Makefile/cmake/configure 重点学习Cmake 首先是简单的MakeFile入门 1.1 简单Makefile 范例1.1 all: @echo "Hello all& ...

  9. ypipe, zmq的核心部件,无锁读写的管道。

    必须指出,无锁读写只限于单个读跟单个写之间,读与读,还有写与写之间必须确保同步.所以ypipe不必读写锁rwlock或者读写之间的锁,但需要读锁跟写锁两个锁,在读端之间或在写端之间仍然是临界资源.本质 ...

  10. 初识uds之abstract socket

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   在<记一次有趣的hwclock ...