帖子

通常我们在服务器上使用 vim 的时候,只能进行单文件编辑。若想要支持目录树之类的都会比较麻烦。这里是整理的配置文件,在最后整理了相关插件的安装命令。

启用目录树支持,我们需要做的有下方两件事,配置完成后,对于日常服务器运维与使用已经不成问题。

  1. 保存 .vimrc 配置文件内容,文件位置是: ~/.vimrc
" @see https://www.ruanyifeng.com/blog/2018/09/vimrc.html
set showcmd " 命令模式下,在底部显示,当前键入的指令
set mouse=a " 支持使用鼠标
set encoding=utf-8 " 使用 utf-8 编码。
set t_Co=256 " 启用256色
set softtabstop=4 " Tab 转为多少个空格
set shiftwidth=4 " 缩进宽度 4 个空格
set backspace=indent,eol,start " backspace 在遇到 Tab 时删除 Tab,在遇到 4 个空格时删除 4 个空格
set expandtab " 由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格
set textwidth=120 " 设置行宽,即一行显示多少个字符
set wrap " 自动折行,即太长的行分成几行显示
set linebreak " 只有遇到指定的符号(比如空格、连词号和其他标点符号),才发生折行。也就是说,不会在单词内部折行
set laststatus=2 " 是否显示状态栏。0 表示不显示,1 表示只在多窗口时显示,2 表示显示
set showmatch " 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号
set hlsearch " 搜索时,高亮显示匹配结果
set ignorecase " 搜索时忽略大小写
set nobackup " 不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号(〜)
set autochdir " 自动切换工作目录。这主要用在一个 Vim 会话之中打开多个文件的情况,默认的工作目录是打开的第一个文件的目录。该配置可以将工作目录自动切换到,正在编辑的文件的目录
" 如果行尾有多余的空格(包括 Tab 键),该配置将让这些空格显示成可见的小方块
set listchars=tab:»■,trail:■ 
set list

set cursorline " 光标所在的当前行高亮
set number " 显示行号
set relativenumber " 显示相对行号
set tabstop=4 " 设置tab锁进
set hlsearch " 设置搜索高亮
set autoindent " 设置自动缩进
set backspace=2 " 设置使用退格键删除

" 安装插件
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
Plug 'junegunn/fzf'
call plug#end()

" 让 Vim 在进入插入模式时自动禁用 autoindent,避免影响粘贴,缩进导致格式错乱
autocmd InsertEnter * set paste
autocmd InsertLeave * set nopaste

" 在注释行回车时,新行不自动增加注释符号
autocmd FileType * setlocal formatoptions-=cro

" 启动 Vim 时自动打开 NERDTree 并切换到右侧窗口
autocmd VimEnter * if !argc() && exists(':NERDTree') | NERDTree | wincmd l | endif

" 确保 NERDTree 显示行号和相对行号
autocmd FileType nerdtree setlocal number relativenumber

" 只剩 NERDTree 窗口时,自动退出 Vim
autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

" 开启/关闭 NERDTree 的快捷键,并确保打开时自动切换到右侧窗口
function! ToggleNERDTree()
    if exists("g:NERDTree") && g:NERDTree.IsOpen()
        NERDTreeToggle
    else
        NERDTreeToggle
        wincmd l
    endif
endfunction
nnoremap <C-T> :call ToggleNERDTree()<CR>

" 不显示 .pyc 文件
let NERDTreeIgnore = ['\.pyc$']

" 定义窗口位置及窗口大小
let NERDTreeWinPos='left'
let NERDTreeWinSize=25

" 定义切换窗口的快捷键
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>

" 声明插件并自动安装,需要安装 git 工具
" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
"     https://ghfast.top/https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim && \
"     curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
"     https://ghfast.top/https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim && \
"     vim -es -u ~/.vimrc -i NONE -c 'PlugInstall' -c 'qa!' || true && \
"     nvim --headless -u ~/.vimrc -i NONE -c 'PlugInstall' -c 'qa!' 2> /dev/null
  1. 安装插件
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://ghfast.top/https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim && \
    curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://ghfast.top/https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim && \
    vim -es -u ~/.vimrc -i NONE -c 'PlugInstall' -c 'qa!' || true && \
    nvim --headless -u ~/.vimrc -i NONE -c 'PlugInstall' -c 'qa!' 2> /dev/null
https://discuss.plugins-world.cn/post/8R5GdXov

未登录无法操作

登录 注册

评论 0

列表为空,暂无内容