多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# VIM 配置与常用命令指南 Vim 是一款强大的文本编辑器,以下内容为常用命令、列编辑技巧、插件管理和一些常见问题的解决方案。 ## 常用命令 ```bash # 删除双引号内的内容 di" 或 da" # 复制当前行 yy -> p # 选中并复制 v -> 使用方向键移动 -> y # 其他常见复制命令 y # 复制选定块 yy # 复制整行,n 行使用 nyy y^ # 复制从当前位置到行首 y$ # 复制从当前位置到行尾 yw # 复制一个单词,n 个单词使用 nyw yG # 复制到文件末尾,指定行使用 1yG ``` - **撤销操作**:`u` ## 列编辑操作 Vim 支持列编辑模式,适用于批量编辑特定列内容: ```bash # 删除列内容 Ctrl+v -> 选择区域 -> d # 插入列内容 Ctrl+v -> 选择区域 -> Shift+i -> 输入内容 -> Esc # 替换列内容 Ctrl+v -> 选择区域 -> Shift+i -> c -> 输入内容 -> Esc ``` ## 搜索相关设置 ```bash # 实时增量搜索 :set incsearch # 忽略大小写搜索 :set ignorecase ``` ## 常用配置 ```bash # 设置粘贴模式,避免注释符号 :set paste # 显示行号 :set number ``` ### 永久生效配置 在 `/etc/vimrc` 中添加以下内容: ```bash set incsearch set ignorecase set paste set number ``` ## 插件管理 Vim 支持多种插件管理器。以下是常用插件和安装步骤。 ### Vundle 插件管理器 > 适用于较老的插件管理方式 - [Vundle GitHub 仓库](https://github.com/VundleVim/Vundle.vim) ### vim-plug 插件管理器 > 推荐的插件管理器 - [vim-plug GitHub 仓库](https://github.com/junegunn/vim-plug) #### 安装 vim-plug ```bash curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ``` #### 插件使用示例 在 `~/.vimrc` 文件中配置: ```bash call plug#begin() Plug 'tpope/vim-sensible' Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } call plug#end() ``` - 使用 `:PlugInstall` 命令安装插件。 ### Pathogen 插件管理器 > 推荐用于简单插件管理 - [Pathogen GitHub 仓库](https://github.com/tpope/vim-pathogen) #### 安装 Pathogen ```bash mkdir -p ~/.vim/autoload ~/.vim/bundle && \ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim ``` ## 常用插件推荐 - **Auto Pairs**:自动括号补全插件 ```bash git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs ``` - **NERDTree**:目录树管理工具 ```bash git clone https://github.com/preservim/nerdtree.git ~/.vim/bundle/nerdtree # 启动命令 NERDTreeToggle ``` - **YouCompleteMe**:代码自动补全插件 ```bash git clone --recursive https://github.com/ycm-core/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe cd ~/.vim/bundle/YouCompleteMe python3 install.py --go-completer ``` ## 解决常见问题 ### Gvim 菜单中文乱码 解决 Gvim 菜单中文显示乱码的配置: ```bash set encoding=utf-8 set fileencodings=utf-8,chinese,latin-1,gbk,gb18030,gb2312 if has("win32") set fileencoding=chinese else set fileencoding=utf-8 endif source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim language messages zh_CN.utf-8 ```