1.VIM的三种模式:

  普通模式、插入模式、命令行模式
2.三种模式的转换:
  2.1进入普通模式
    ①打开VIM默认为普通模式
    ②处于插入模式/命令行模式时,按ESC进入普通模式
  2.2进入插入模式:
    A:在行末插入
    a:在光标后插入
    I:在行首插入
    i:在当前位置插入
    O:在上一行插入
    o:在下一行插入
3.VIM中光标的移动
  3.1在普通模式下移动光标
    ↑/j
     ←/h    →/l
    ↓/j

  w:移动到下一个单词
  b:移动到上一个单词
  3.2在插入模式下移动光标
    ↑
  ←    →
    ↓
4.退出
  进入命令行模式(普通模式下输入":")
  :q! 强制退出,不保存
  :q 退出
  :wq! 强制保存并退出
  :w <文件路径> 另存为
  :saveas 文件路径 另存为
  :x 保存并退出
  :wq 保存并退出
5.普通模式下删除(剪切)文本
  x 删除游标所在的字符
  X 删除游标所在前一个字符
  Delete 同x
  dd 删除整行
  dw 删除一个单词(不适用中文)
  d$或D 删除至行尾
  d^ 删除至行首
  dG 删除到文档结尾处
  d1G 删至文档首部
  2dd 表示一次删除2行
6.光标跳转
  nG游标移动到第 n 行
  gg 游标移动到到第一行
  G 到最后一行
  Ctrl+o 快速回到上一次(跳转前)光标所在位置
  w 到下一个单词的开头
  e 到当前单词的结尾
  b 到前一个单词的开头
  ge 到前一个单词的结尾
  0或^ 到行头
  $ 到行尾
  f<字母> 向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
  F<字母> 向前搜索<字母>并跳转到第一个匹配的位置

7.复制及粘贴(普通模式下操作)
  yy 复制游标所在的整行(3yy表示复制3行)
  y^ 复制至行首,或y0。不含光标所在处字符。
  y$ 复制至行尾。含光标所在处字符。
  yw 复制一个单词。
  y2w 复制两个单词。
  yG 复制至文本末。
  y1G 复制至文本开头。
  p(小写)代表粘贴至光标后(下)
  P(大写)代表粘贴至光标前(上)
8.替换与撤销
  r+<待替换字母> 将游标所在字母替换为指定字母
  R 连续替换,直到按下Esc
  cc 替换整行,即删除游标所在行,并进入插入模式
  cw 替换一个单词,即删除一个单词,并进入插入模式
  C(大写) 替换游标以后至行末
  u{n} 撤销一次或n次操作
  U(大写) 撤销当前行的所有修改
  Ctrl+r redo,即撤销undo的操作
9.快速缩进
  普通模式下输入>> 整行将向右缩进(使用,用于格式化代码超爽)
  普通模式下输入<< 整行向左回退
  普通模式下输入:进入命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数
  例:设置缩进为4个字符
  :set sw=4 或 set shiftwidth=4
10.调整文本位置:
  命令行模式下:
  :ce 居中
  :ri 靠右
  :le 靠左

11.查找
  命令行模式下: /word 或 ?word

12.多文件编辑
  vim a.txt b.txt
  切换需要编辑的文件(命令行模式下操作):
  :n 编辑下一个文件 或 :n! 强制切换
  :N 编辑上一个文件 或 :N! 强制切换

  :ls 查看打开的的所有文件
  :f 查看正在编辑的文件名
  :e new.txt 打开新的文件
  :b b.txt 或 :b 编号 进入文件b.txt编辑

13.可视模式(相当于鼠标的选择)
  v 字符选择
  V 行选择
  Ctrl+v 块选择(相当于alt+鼠标)

14.文档加密
  vim -x file

"###################插件配置###################
set nocompatible " 去除VI一致性,必须
filetype off " 必须 " 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here') " 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim' " ------------ 状态栏插件------------
Plugin 'bling/vim-airline' " ------------ 目录插件--------------
Plugin 'scrooloose/nerdtree'
" 在目录栏和编辑栏切换: Ctrl+ww
" 启动VIM时自动打开NERDTree
"autocmd vimenter * NERDTree
"vim没有指定文件时打开NERDTree,指定文件时不打开
autocmd StdinReadPre * let s:std_in=
autocmd VimEnter * if argc() == && !exists("s:std_in") | NERDTree | endif
" 设置快捷键
map <F2> :NERDTreeToggle<CR>
" 关闭文件时如果只剩下NERDTree,吧NERDTree也关闭
autocmd bufenter * if (winnr("$") == && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" 目录树窗口的宽度
let NERDTreeWinSize= " ------------文件搜索插件------------
Plugin 'kien/ctrlp.vim'
" 使用方法:
" 打开搜索:Ctrl+p 退出搜索:Ctrl+ C
" 选择文件: 上下键 或 Ctrl+j/k
" 打开文件:Enter (在当前窗口打开) 或 Ctrl+t 在新窗口打开
" 创建一个新文件:输入文件名 按Ctrl+y
" 搜索时排除文件
set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
"set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ 'file': '\v\.(exe|so|dll)$',
\ 'link': 'some_bad_symbolic_links',
\ } " --------------写前端用的插件---------
Plugin 'mattn/emmet-vim'
"使用:Ctrl+y 再按,
"生成html基本结构:输入 html:5
".outer 类名为outer的div标签
" #outer id为outer的div标签
" h1{hello} 内容为hello的h1标签
" a 生成a标签
" ul>li*3 生成下级标签
" 注释 光标移到_<div> div上 ctrl+y再按. 注释div标签
" 写html css时开启
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall
" 更改热键
let g:user_emmet_leader_key='<C-Z>' "-------------Python折叠插件------------
Plugin 'tmhedberg/simpylfold'
" 使用方法: 视图模式下,在需要折叠的代码块的第一行按za
"显示 代码块的文档字符串,比如对类的注释
let g:SimpylFold_docstring_preview = 1
" vim 自带折叠, 根据缩进进行折叠
set foldmethod=indent "------ Python 自动缩进插件-----------
Plugin 'indentpython.vim' "------------语法检查插件------------
Plugin 'scrooloose/syntastic'
" 在保存文件的时候会检查语法并提示
" 官方推荐的设置
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%* let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0 let g:syntastic_python_python_exe = 'python3'
" 需要配置语法检查器才能生效
"
"
"---------------自动补全插件------------
Plugin 'valloric/youcompleteme'
" 安装:sudo apt-get install build-essential cmake
" cd ~/.vim/bundle/YouCompleteMe
" ./install.py
let g:ycm_python_binary_path = '/usr/bin/python3'
" 不在上面显示函数的用法
let g:ycm_autoclose_preview_window_after_completion=0
let g:ycm_add_preview_to_completeopt=0
set completeopt-=preview "-------------注释插件------------------
Plugin 'scrooloose/nerdcommenter'
let mapleader="," "更改映射键
"单行注释: 视图模式下 , + c <space>
"多行注释: 视图模式下 , + cs(每行前面加*) 或 视图模式下选中 \ + cm "-------------Python补全插件-----------
Plugin 'honza/vim-snippets'
Plugin 'sirver/ultisnips'
" 设置补全快捷键
let g:UltiSnipsExpandTrigger = "<C-J>" "-----------------标点符号插件---------
Plugin 'tpope/vim-surround'
" 用法 -- 正常模式下
" 加标点:光标放在需要加标点符号的地方, 然后按下yss + 标点符号
" 改遍标点:光标放在需要改标点符号的地方,按下cs + 源标点 + 新标点
" 删除标点:光标放在需要删除标点符号的地方, 按下ds + 需要删除的标点
" "------------------主题插件-------------
Plugin 'tomasr/molokai'
"let g:molokai_original = 1
let g:rehash256 = 1
colorscheme molokai "-------------------tag插件-------------
Plugin 'taglist.vim'
let Tlist_Show_One_File=1 "只显示当前文件的tags
let Tlist_WinWidth=30 "设置taglist宽度
let Tlist_Exit_OnlyWindow=1 "tagList窗口是最后一个窗口,则退出Vim
let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口 map <F3> :TlistToggle<CR> "
" 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在vundle#begin和vundle#end之间.
" Github上的插件
" 格式为 Plugin '用户名/插件仓库名'
"Plugin 'tpope/vim-fugitive'
" 来自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略
"Plugin 'L9'
" 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址'
"Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git仓库(例如自己的插件) Plugin 'file:///+本地插件仓库绝对路径'
"Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在仓库的子目录中.
" 正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下
"Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突
"Plugin 'ascenator/L9', {'name': 'newL9'} " 你的所有插件需要在下面这行之前
call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on
"
" 简要帮助文档
" :PluginList - 列出所有已配置的插件
" :PluginInstall - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存
" :PluginClean - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件
"
" 查阅 :h vundle 获取更多细节和wiki以及FAQ
" 将你自己对非插件片段放在这行之后 "####################VIM配置####################
" 解决tmux下主题颜色问题, 改了之后功能键F1-F5都变了
"set term=screen
" 设置注释的颜色
hi comment ctermfg=6
" 显示行号
set number
" 突出显示当前行,在当前行下加一个横线
set cursorline
" 打开标尺,在vim界面下显示光标所在的位置,默认是开启的
set ruler
" 显示状态栏
set laststatus=2
" 定义状态栏的格式: 可以安装插件实现
set statusline=[FILE:%F]\ [TYPE:%Y]\ [%{&encoding}]\ [FORMAT=%{&ff}]\ [LINE:\%l\/\%L]
" 设置文件的编码格式
set encoding=utf-8
" 在每行第80个字符出显示竖线, 颜色时红色的
set colorcolumn=80
" 设置tab缩进的长度
set tabstop=4
" 设置使用<< 或 >> 时左右移动的距离,设置为4个空格
set shiftwidth=4
" 设置自动缩进
set autoindent

VIM编辑器使用及插件配置的更多相关文章

  1. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  2. vim学习、各类插件配置与安装【转】

    转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...

  3. 【Linux 操作系统】vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  4. DoxygenToolKit.vim 插件配置

    如何才能既享受 Doxygen 的强大功能,同时又避免大量的重复性的注释内容? 解决思路: 让编辑器来替我们写那些格式和内容固定的部分,我们只负责写真正的有效内容. 所以,答案就是:Vim + Dox ...

  5. 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  6. vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  7. Ubuntu 18.04中的Vim编辑器的高级配置

    VIM (Unix及类Unix系统文本编辑器) Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.VIM是开源软件. Vim普遍被推崇为类Vi编辑器中 ...

  8. 第6天【egrep、bash环境配置及脚本、vim编辑器】

    bash环境配置及脚本(02)_recv bash环境配置及脚本(02)_recv bash环境配置文件: 按生效范围划分,存在两类: 全局配置: /etc/profile /etc/bashrc 个 ...

  9. Centos下Vim编辑器基本配置

    设置 Vim编辑环境 配置 有两种方式: 1,是在/etc/vimrc 进行设置,这种设置方法会作用与所有登录到Linux环境下的用户.不建议使用. 2,在用户登录的 ~ 目录下创建一个 .vimrc ...

随机推荐

  1. rpmgraph - 显示 RPM 软件包依赖关系图

    SYNOPSIS rpmgraph PACKAGE_FILE ... DESCRIPTION rpmgraph 使用 PACKAGE_FILE 参数来产生一个软件包依赖关系图.每个 PACKAGE_F ...

  2. Linux学习笔记之VIM编辑器

    此处根据需要,只罗列一些常用的指令和用法 五.VIM程序编辑器 Vi与vim Vi打开文件没有高亮注释,vim有,且vim是vi的高级版本 Vim默认打开文件为命令模式 i               ...

  3. 135-基于TMS320C6678、FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台

    基于TMS320C6678.FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台 一.板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合CPCI2.0标准,采 ...

  4. MySQL的安装及简单调优

    MySQL的安装及调优 1. 安装注意点 ubuntu18的安装方式 sudo apt-get update sudo apt-get install -y mysql-server mysql-cl ...

  5. python常用函数 E

    endswith(str/tuple) 末尾元素匹配,可以传入tuple. 例子: enumerate(iterable) 可以跟踪集合元素索引,适用于迭代器. 例子: eval(str) 可以字符串 ...

  6. Oracle 反键索引/反向索引

    反键索引又叫反向索引,不是用来加速数据访问的,而是为了均衡IO,解决热块而设计的比如数据这样: 1000001 1000002 1000005 1000006 在普通索引中会出现在一个叶子上,如果部门 ...

  7. 利用jmeter发起java请求调用shell脚本

    1.创建maven项目 在pom文件中加入依赖:     2.在路径src/main/java下创建类,如类名shellclass                     3.      创建jmet ...

  8. webRTC脱坑笔记(一)— 初识webRTC

    webRTC概述 WebRTC--- `Web browsers with Real-Time Communications (RTC)` WebRTC是一个开源项目,可以在`Web`和本机应用程序中 ...

  9. cookie记住账户密码

    //cookie保存路径 String autologin=request.getParameter("autologin"); String path = request.get ...

  10. MySQL数据库INNODB 表损坏修复处理过程

    MySQL数据库INNODB 表损坏修复处理过程 博客分类: mysql tomcatmysql  最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时 ...