IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> vim从入门到进阶学习笔记 -> 正文阅读

[开发工具]vim从入门到进阶学习笔记

参考手册

中文参考手册
入门参考

vim模式

  • V (大V) 选择当前行
  • ctrl+v 进行方块操作

vim编辑技巧

  • 插入模式下 ctrl+h 删除上一个字符, ctrl+w删除上一个单词,ctrl+u删除当前行

移动大法 normal模式

  • zz 当前行移动到屏幕中间
  • H/M/L 分别移动到当前屏幕头、中间、尾

vim快速增删改查

  • dw、daw删除单词包括空格,dtw删除前后匹配标记(括号双引号内)的内容
  • x 删除单个字符
  • r(replace) 替换
  • c(change) cawa修改单词包括空格
  • s(substitute) 删除并进入插入模式
  • *# 进行当前单词的向前和向后搜索

搜索替换

多文件操作

  • Buffer: 文件的内容缓冲区
  • window: Buffer的可视化分割区域
  • Tab:组织window为一个工作区

BUffer

  • :ls 查看当前缓冲区
  • :e file 编辑文件
  • :b[n] 打开第几个缓冲区, :bpre :bnext :bfirst :blast 切换缓冲区
    在这里插入图片描述

vim文本对象(Text Object)

次数+命令+文本对象,
命令: c(hange)、d(elete)、v(isual)、y(ank)
(v|c|d|y)(i|a)(’{’|’[’|’<’…),表示(选中|改变|删掉|复制)(不包括|包括)定界符以内的)文本。

  • iw 插入单词

  • viw 选择模式插入单词

  • vaw around word 选中当前单词和单词之后的空格

  • vis/vas/vip/vap

  • vi(/)/</>/{/}/"/"/’/’

  • va(/)/</>/{/}/"/"/’/’

  • ciw 删除单词并插入

  • ci{ 删除{内容

  • ya[

  • di" 删除双引号包裹的内容

vim复制粘贴和寄存器

  • y(yank) 和 p(put)

insert模式下的复制粘贴

:set paste 设置粘贴模式 不设置会导致代码缩进错乱
:set nopaste

寄存器

  • :reg 查看寄存器
  • "[num|name] 使用寄存器
  • "+ 使用系统剪切板的内容

vim 宏(macro)

一系列命令操作的集合

如何使用

  • q 开始录制,q 结束录制
  • 使用 q{register} 把录制的宏保存到指定寄存器
  • 使用 @{register} 使用录制宏

例子:
给url批量加双引号

vim补全大法

buquan

给vim换配色

安装插件加速 在 plug#begin() 前添加
let g:plug_url_format=‘https://git::@hub.fastgit.org/%s.git’

  • 使用 :colorscheme 显示当前主题,默认是default
  • :colorscheme <ctrl>+d 显示所有可用配色主题
  • 网上下载配色方案,放到 vim 配置目录下的 colors 目录 ~/.vim/colors ,windows系统是 ~/AppData/Local/vim/colors 。如果没有目录创建目录

主题

  • vim-hybrid
  • vim-colors-solarized
  • gruvbox

vim文件目录和搜索插件

文件管理器 nerdtree

  • github nerdtree
  • autocmd vimenter * NERDTree 可以在启动vim的时候打开 nerdtree

快捷键映射

快速搜索插件 ctrlp

文件内容快速定位

  • vim-easymotion
  • nmap ss <Plug>(easymotion-s2) 一个快捷键映射搜索文件内容

编辑成双成对 vim-surround

https://github.com/tpope/vim-surround

在这里插入图片描述

  • ys '"([{}]) 包裹成对添加
  • yss 同上,范围是一行
  • cs 修改 eg: cs"' 双引号改为单引号
  • ds 删除 eg: cs" 删除双引号

强大的模糊搜索与替换插件

fzf.vim

需要先安装 fzf https://github.com/junegunn/fzf
根据 README 安装 choco install fzf window系统

  • 使用ag命令需要安装 https://github.com/ggreer/the_silver_searcher
    choco install ag window系统

  • far.vim 替换插件 批量替换文件

vim-go插件

  • vim-go

neovim

vim 的另一分支版本,更现代化的vim

课程总结

vim 可以用一生的编辑器

《practical vim》
《笨方法学vim》

课程结业

效果截图
在这里插入图片描述

在这里插入图片描述

.vimrc 配置文件

" 防止中文乱码
set encoding=utf-8
" 不与vi兼容
set nocompatible

if !has('nvim')
  " 设置 leader 键
  let mapleader=','
  " 语法高亮
  " syntax on
  set number
  " 缩进2个空格单位
  set shiftwidth=2
  set background=dark
  colorscheme hybird
  set t_Co=256
  " 自动缩进
  set autoindent
  set tabstop=2
  set expandtab " 不同编辑器tab缩进会存在不一致,将tab转为空格
  set softtabstop=2 " tab转为2个空格
  " gui_vim 才生效
  " set guifont=FantasqueSansMono\ Nerd\ Font\ Mon:h24

  " set relativenumber " 显示当前行号,其他行为相对该行的行号
  set cursorline
  set hlsearch " 高亮最近的匹配搜索

  " 自定义按键映射
  " 使用jj 进入normal 模式
  inoremap jj <Esc>`^
  " 显示文件在目录中的位置
  nnoremap <leader>v :NERDTreeFind<cr>
  " 显隐文件目录
  nnoremap <leader>g :NERDTreeToggle<cr>

  " ctrlp插件配置 ===
  " let g:ctrlp_working_path_mode = 'ra'
  let g:ctrlp_map =  '<c-p>'
  let g:ctrlp_cmd = 'CtrlP'
  " 设置搜索的目录是当前打开的目录
  let g:ctrlp_cmd='CtrlP :pwd'
  " let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d'  " Windows
  " ctrlp ===

  " easymotion 配置
  nmap ss <Plug>(easymotion-s2)

  " Ag 命令配置
  let g:ackprg = 'ag --nogroup --nocolor --column'

  let g:plug_url_format='https://git::@hub.fastgit.org/%s.git'
  call plug#begin('~/.vim/plugged')

  " 首页插件
  Plug 'mhinz/vim-startify'
  " 底部状态栏插件
  Plug 'vim-airline/vim-airline'
  " 文件管理器插件
  Plug 'scrooloose/nerdtree'
  " 文件快速搜索插件
  Plug 'ctrlpvim/ctrlp.vim'
  " 文件内容快速定位插件
  Plug 'easymotion/vim-easymotion'
  " 标记成对修改插件
  Plug 'tpope/vim-surround'
  " 命令行快速搜索文件插件
  Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
  Plug 'junegunn/fzf.vim'
  " golang插件,代码补全不生效,奇怪
  Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
  " 代码补全插件,还没研究怎么用
  Plug 'valloric/youcompleteme'

  call plug#end()

endif

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-13 12:28:08  更:2021-08-13 12:30:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 10:26:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码