VIM编辑器使用及插件配置
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编辑器使用及插件配置的更多相关文章
- vim学习、各类插件配置与安装
vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...
- vim学习、各类插件配置与安装【转】
转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...
- 【Linux 操作系统】vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- DoxygenToolKit.vim 插件配置
如何才能既享受 Doxygen 的强大功能,同时又避免大量的重复性的注释内容? 解决思路: 让编辑器来替我们写那些格式和内容固定的部分,我们只负责写真正的有效内容. 所以,答案就是:Vim + Dox ...
- 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- Ubuntu 18.04中的Vim编辑器的高级配置
VIM (Unix及类Unix系统文本编辑器) Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.VIM是开源软件. Vim普遍被推崇为类Vi编辑器中 ...
- 第6天【egrep、bash环境配置及脚本、vim编辑器】
bash环境配置及脚本(02)_recv bash环境配置及脚本(02)_recv bash环境配置文件: 按生效范围划分,存在两类: 全局配置: /etc/profile /etc/bashrc 个 ...
- Centos下Vim编辑器基本配置
设置 Vim编辑环境 配置 有两种方式: 1,是在/etc/vimrc 进行设置,这种设置方法会作用与所有登录到Linux环境下的用户.不建议使用. 2,在用户登录的 ~ 目录下创建一个 .vimrc ...
随机推荐
- elasticsearch 基础 —— ReIndex
Reindex会将一个索引的数据复制到另一个已存在的索引,但是并不会复制原索引的mapping(映射).shard(分片).replicas(副本)等配置信息. 一.reindex的常用操作 1.re ...
- Linux学习笔记5(2)-CentOS7中Tomcat8修改jvm内存配置
1.进入tomcat的bin目录,比如我的在 /usr/local/apache-tomcat-8.5.16/bin 2.创建新的文件setenv.sh vi setenv.sh 并在此文件中添加以下 ...
- Linux 下源码安装ngnix
版本说明: NGINX 版本1.12.0 pcre-8.40 zlib-1.2.11 openssl-1.1.0i 安装过程 # ./configure --prefix=/usr/ngnix ...
- php 从7.0升级到7.2
下面的方法安装的php是非线程安全的,apache2服务器用不了 1. 添加Ondřej Surý提供的PHP源: sudo apt-get install software-properties-c ...
- input框金额输入验证
金额输入要求:只能是数字且小数点后保留两位小数 html <input type="text" min="10" id="dc-moneyInp ...
- 网路编程和并发:2.什么是C/S和B/S架构?
1.C/S 架构 客户端和服务器之间的架构.Client-Server也称客户机服务器模型. 在Client/Server结构的系统中,应用程序分为客户端和服务器两点部分,客户端为每个用户所有,服务器 ...
- Kettle解析JSON错误,We MUST have the same number of values for all paths,We can not find and data with path [$.
最近公司要从聚石塔上抽取数据,其中有JSON格式数据,所以学习一下Kettle解析JSON,碰到小小问题,记录一下: (1) 2015/07/15 15:22:48 - trade_detail.0 ...
- spring boot 热部署devtools实现(成功,主要是添加依赖后配置setting)
1.devtools spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot ...
- 【leetcode】592. Fraction Addition and Subtraction
题目如下: 解题思路:本题考察的是分数的加减法.小学时候就学过,分数的加减法是先求两个分母的最小公倍数,然后分子分别乘以最小公倍数与自己分母的商,相加后约分即可.所以,本题只要按+,-两个符号分割输入 ...
- 【KeepAlive】Http--Keep-Alive及Tcp--Keepalive
Keep-Alive模式: Http协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时,每个请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接:当使用Keep-A ...