-->
1。 VIM 的三种模式:
普通模式、插入模式、命令行模式
2.三种模式转换:
2.1 进入普通模式
①打开VIM,默认为普通模式
②在插入模式/命令行模式下,按ESC进入普通模式
2.2 进入插入模式:
A:在行尾插入
a:在光标后插入? 3。 VIM 中光标的移动
3.1 正常模式下移动光标
↑/j
←/h →/l ↓/j
w:移至下一个单词
b:移至上一个单词
3.2 在插入模式下移动光标
↑
← →
↓
4.退出
进入命令行模式(普通模式下输入“:”)
:q!强制退出而不保存
:q 退出
:wq!强制保存并退出
:w <文件路径> 另存为
:保存文件路径 另存为
:x 保存然后退出
:wq 保存并出口
5。正常模式下删除(剪切)文本
x 删除光标所在字符
X 删除光标之前的字符
删除 与相同 d$ 或 D 删除至行尾
d^ 删除至行首
dG 删除至文档末尾
d1 G 删除至文档开头 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 重做,即撤消操作
9。快速缩进
普通模式下输入 >> 整行会向右缩进(用,格式化代码超酷)
正常模式下输入<<,整行会缩进到右边向左缩进
普通模式下进入:进入命令行模式 设置下面的shiftwidth值可以控制缩进和缩进的字符数
示例:设置缩进为4个字符
:set sw=4 或 set shiftwidth=4
10. 调整文本位置:
在命令行模式下:
:ce 中心 : ri 向右
:保持向左
11。查找
在命令行模式下:/word 或 ?word
? :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 no兼容 " 要删除 VI 一致性,您必须
文件类型关闭“必需
" 设置包括vundle和初始化相关的运行时路径
设置 rtp+=~/.vim/bundle/Vundle.vim
调用vundle#begin()
" 另一种选择,指定vundle的路径来安装插件
“调用 vundle#begin('~/some/path/here')
" 要让 vundle 管理插件版本,您必须
插件“VundleVim/Vundle.vim”
》------------状态栏插件------------
插件 'bling/vim-airline'
》------------目录插件--------------
插件“scrooloose/nerdtree”
" 目录栏和编辑栏切换:Ctrl+ww
" 启动VIM时自动打开NERDTree
“autocmd vimenter * NERDTree
"Vim 在未指定文件时打开 NERDTree,在指定文件时不打开
autocmd StdinReadPre * 让 s:std_in=
autocmd VimEnter * if argc() == && !exists("s:std_in") |书呆子树 |结束
》设置快捷键
地图
:NERDTreeToggle
" 如果关闭文件时只剩下NERDTree,也关闭NERDTree
autocmd bufenter * if (winnr("$") == && 存在("b:NERDTree") && b:NERDTree.isTabTree()) |问 |结束
"目录树窗口的宽度
让 NERDTreeWinSize=
》------------文件搜索插件------------
插件 'kien/ctrlp.vim'
" 使用方法:
" 打开搜索:Ctrl+p 退出搜索:Ctrl+ C
》选择文件:上下键或Ctrl+j/k
"打开文件:输入(在当前窗口中打开)或Ctrl+t在新窗口中打开
》创建新文件:输入文件名并按Ctrl+y
" 搜索时排除文件
设置 wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
“设置 wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe” Windows
让 g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
让 g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ '文件': '\v\.(exe|so|dll)$',
\ '链接': 'some_bad_symbolic_links',
\}
》-------------为前端编写插件---------
插件 'mattn/emmet-vim'
“使用:Ctrl+y,然后按,
》生成html的基本结构:输入html:5
".outer div 标签,类名为outer
" #outer id 是outer
的div标签
" h1{hello} h1标签,内容为hello
" a 生成标签
" ul>li*3 生成从属标签
" 评论将光标移动到_ div 并再次按 ctrl+y。评论 div 标签
" 编写 html css 时启用
让 g:user_emmet_install_global = 0
autocmd 文件类型 html,css EmmetInstall
" 更改热键
让 g:user_emmet_leader_key=''
》-------------Python折叠插件------------
插件 'tmhedberg/simplylfold'
" 使用方法:在查看模式下,在需要折叠的代码块第一行按 za
“显示代码块的文档字符串,例如类的注释
让 g:SimpylFold_docstring_preview = 1
" vim自带折叠功能,可以根据缩进折叠
设置折叠方法=缩进
》-----Python自动缩进插件---------
插件“indentpython.vim”
》--------语法检查插件------------
插件“scrooloose/syntastic”
" 保存文件时会检查语法并提示
「官方推荐设置
设置状态行+=%#warningmsg#
设置状态行+=%{SyntasticStatuslineFlag()}
设置状态行+=%*
让 g:syntastic_always_populate_loc_list = 1
让 g:syntastic_auto_loc_list = 1
让 g:syntastic_check_on_open = 1
让 g:syntastic_check_on_wq = 0
让 g:syntastic_python_python_exe = 'python3'
》需要配置语法检查器才能生效
“
“
"-------------自动完成插件------------
插件“valloric/youcompleteme”
“安装: sudo apt-get install build-essential cmake
" cd ~/.vim/bundle/YouCompleteMe
“ ./www.sychzs.cn
让 g:ycm_python_binary_path = '/usr/bin/python3'
》不显示上面函数的用法
让 g:ycm_autoclose_preview_window_after_completion=0
让 g:ycm_add_preview_to_completeopt=0
设置completeopt-=预览
"-------------评论插件------------------
插件“scrooloose/nerdcommenter”
let mapleader="," "更改地图键
"单行注释:在查看模式下,+ c
》多行注释:在查看模式下,+cs(每行前面有*)或在查看模式下,选择\+cm
》-------------Python补全插件----------
插件 'honza/vim-snippets'
插件‘sirver/ultisnips’
》设置完成快捷键
让 g:UltiSnipsExpandTrigger = ""》-----------------标点插件---------
插件 'tpope/vim-surround'
" 使用方法 -- 普通模式
" 添加标点符号:将光标置于要添加标点符号的位置,然后按 yss + 标点符号
" 更改所有标点符号:将光标置于需要更改标点符号的位置,按 cs + 源标点符号 + 新标点符号
" 删除标点符号:将光标置于需要删除标点符号处,按ds+要删除的标点符号
”
》------------------主题插件-------------
插件“tomasr/molokai”
“令 g:molokai_original = 1
让 g:rehash256 = 1
莫洛凯岛配色方案
"------------------标签插件-------------
插件'taglist.vim'
let Tlist_Show_One_File=1 "只显示当前文件的标签
let Tlist_WinWidth=30 "设置标签列表宽度
let Tlist_Exit_OnlyWindow=1 "tagList 窗口是最后一个窗口,然后退出 Vim
let Tlist_Use_Right_Window=1 "在 Vim 窗口的右侧显示 taglist 窗口
地图 :TlistToggle
“
" 以下示例用于支持不同格式的插件安装。
" 请将安装插件的命令放在 vundle#begin 和 vundle#end 之间。
“ Github 上的插件
"格式为插件‘用户名/插件仓库名称’
“插件‘tpope/vim-fugitive’
“来自 http://www.sychzs.cn/vim/scripts.html 的插件
" Plugin ‘插件名称’其实是Plugin ‘vim-scripts/插件仓库名称’,不过这里的用户名可以省略
“插件‘L9’
" Git支持但github上不再存在的插件仓库 插件‘git克隆后的地址’
“插件‘git://www.sychzs.cn/command-t.git’
"本地Git仓库(比如你自己的插件)Plugin 'file:///+本地插件仓库的绝对路径'
“插件‘文件:///home/gmarik/path/to/plugin’
“该插件位于存储库的子目录中。
" 指定正确的路径来设置runtimepath。以下示例插件位于sparkup/vim目录下
"插件 'rstacruz/sparkup', {'rtp': 'vim/'}
》安装L9,如果你已经安装了这个插件,可以使用如下格式,避免命名冲突
"插件 'ascenator/L9', {'name': 'newL9'}
" 所有插件都需要位于以下行之前
调用 vundle#end() "必填
filetype 插件缩进 " 您必须加载 vim 和插件附带的语法和文件类型相关脚本
" 忽略插件对缩进的更改,可以使用以下替换:
“文件类型插件
“
》简要帮助文档
" :PluginList - 列出所有配置的插件
" :PluginInstall - 安装插件,附加 `!` 来更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo;附加 `!` 以清除本地缓存
" :PluginClean - 清除未使用的插件,需确认;添加`!`即可自动批准删除未使用的插件
“
" 查看 :h vundle 了解更多详细信息以及 wiki 和常见问题解答
" 在此行后面放置您自己的非插件片段
"####################VIM 配置###################
》 解决tmux下主题颜色问题,改后功能键F1-F5都变了
“设置术语=屏幕
" 设置注释的颜色
嗨评论 ctermfg=6
" 显示行号
设定数量
" 突出显示当前行并在当前行下方添加一条水平线
设置光标线
》打开标尺,在vim界面显示光标位置,默认开启
设置标尺
" 显示状态栏
设置最后状态=2
” 定义状态栏的格式:可以安装插件来实现
设置状态行=[文件:%F]\ [类型:%Y]\ [%{&编码}]\ [格式=%{&ff}]\ [行:\%l\/\%L]
" 设置文件的编码格式
设置编码=utf-8
" 在每行第 80 个字符处显示竖线,颜色为红色
设置颜色列=80
" 设置制表符缩进长度
设置制表符=4
" 设置使用<< 或 >>时的左右移动距离,设置为4个空格
设置shiftwidth=4
" 设置自动缩进
设置自动缩进
-->