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. 2018-11-3-git-分支改名

    title author date CreateTime categories git 分支改名 lindexi 2018-11-3 12:49:9 +0800 2018-2-13 17:23:3 + ...

  2. 基于6U VPX的 SRIO 接口, 和PCIe 接口的msata 固态存储卡

    基于6U VPX 的mSATA高性能数据存储板     一.板卡概述 该产品系我司自主研发.基于标准6U VPX架构. 二.产品特性       最大存储容量8TB        读写方式RAID0 ...

  3. MySQL05-- 客户端工具及SQL语句

    目录 MySQL客户端工具及SQL语句 一.客户端命令介绍 二.接收用户的SQL语句 三.字符集定义 四.字符集设置 五.select的高级用法(扩展) MySQL客户端工具及SQL语句 一.客户端命 ...

  4. $Noip$前的小总结哦

    考试失误点与积累 有点不知道该干嘛了,状态有点差,写点东西.(后面可能会加更一点东西?) 常规错误 \(1.\) 数组开小 \(2.\) \(int\)和\(longlong\) \(3.\) 开某题 ...

  5. python py文件转换成exe

    1.首先学会了最简单的方法 1)pip install pyinstaller  安装pyinstall 2)pyinstaller  aaaa.py 转换,会在当前目录下建两个文件夹,其中一个文件夹 ...

  6. excel VBA 编程

    Dim cuttent_columns As Integer Dim care_repeat As Integer Private Sub Workbook_Open() Dim i As Integ ...

  7. boost system

    boost::system::error_code is the most basic class in Boost.System; it represents operating system-sp ...

  8. Git 最全命令使用

    git init test 创建并管理一个文件 Git add . 添加到暂存区 Git commit -M '开始的开始' 造了一颗后悔药 Git log 查看版本记录 Git status 查看当 ...

  9. 浅析弹性公网IP付费模式和短时升配功能介绍

    ​ 弹性公网IP付费模式对比 弹性公网IP(EIP),有两种付费方式.一种是预付费,一种是后付费.对于预付费弹性公网IP而言,最大的优点就是带宽费用便宜,相对于后付费有比较大的优惠. 例如,杭州地域6 ...

  10. PHP curl_multi_getcontent函数

    curl_multi_getcontent — 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流 说明 string curl_multi_getcontent ( r ...