考虑到你经常在:

  • CentOS 6/7 集群
  • Ubuntu 24.04
  • HPC 登录节点
  • SSH 终端
  • C/C++ 开发
  • MPI/HIP/CUDA 学习

之间切换,一个纯 Vim(不依赖插件)通用配置最实用。

把下面内容保存到:

~/.vimrc

"========================
" 基础设置
"========================

set nocompatible
syntax on
filetype plugin indent on

"========================
" 编码
"========================

set encoding=utf-8
set fileencodings=utf-8,gbk,gb2312
set termencoding=utf-8

"========================
" 界面
"========================

set number " 显示行号
set ruler " 显示光标位置
set showcmd " 显示命令
set showmode " 显示模式
set cursorline " 当前行高亮
set laststatus=2 " 总是显示状态栏

"========================
" 搜索
"========================

set hlsearch " 高亮搜索结果
set incsearch " 增量搜索
set ignorecase " 忽略大小写
set smartcase " 智能大小写

" 清除搜索高亮
nnoremap :nohlsearch

"========================
" 缩进
"========================

set autoindent
set smartindent
set cindent

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

"========================
" 显示
"========================

set nowrap
set showmatch

" 颜色
if &t_Co > 2 || has(“gui_running”)
syntax enable
endif

"========================
" 鼠标
"========================

set mouse=a

"========================
" 文件
"========================

set nobackup
set nowritebackup
set noswapfile

set autoread

"========================
" 历史记录
"========================

set history=1000

"========================
" 状态栏
"========================

set statusline=
set statusline+=%f
set statusline+=\ [%y]
set statusline+=\ %m
set statusline+=%=
set statusline+=Line:%l/%L
set statusline+=\ Col:%c

"========================
" 快捷键
"========================

let mapleader=" "

" 保存
nnoremap w :w

" 退出
nnoremap q :q

" 保存退出
nnoremap x :x

" 分屏
nnoremap sv :vsplit
nnoremap sh :split

" 分屏切换
nnoremap h
nnoremap j
nnoremap k
nnoremap l

"========================
" C/C++开发
"========================

autocmd FileType c,cpp setlocal tabstop=4
autocmd FileType c,cpp setlocal shiftwidth=4
autocmd FileType c,cpp setlocal expandtab

" F5 编译
autocmd FileType c nnoremap :w:!gcc % -o %< && ./%<
autocmd FileType cpp nnoremap :w:!g++ % -std=c++11 -Wall -O2 -o %< && ./%<

"========================
" 结束
"========================

常用快捷键

快捷键 功能
Space+w 保存
Space+q 退出
Space+x 保存退出
Space+sv 垂直分屏
Space+sh 水平分屏
Ctrl+h/j/k/l 分屏切换
F5 编译并运行 C/C++
/keyword 搜索
n/N 下一个/上一个匹配

集群环境建议

如果你经常登录 CentOS 6.10、CentOS 7.6 等老系统,建议再加:

set background=dark
colorscheme desert

因为 desert 是 Vim 自带主题,几乎所有版本都支持,不会像新主题那样报错。

对于你这种 MPI + HIP + C++ 开发场景,这个配置在 Vim 7.x 到 Vim 9.x、甚至很多 HPC 登录节点的老 Vim 上都能直接使用。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐