vim的配置

目录

配置文件

  1. 在home目录下创建 .vimrc 文件
  2. 然后把下面配置写入
bash 复制代码
" 基础设置
set nu                " 显示行号
set cursorline        " 高亮当前行
set cursorcolumn      " 高亮当前列
set hlsearch          " 高亮搜索结果
set incsearch         " 实时搜索
set laststatus=2      " 总是显示状态栏
set nowrap            " 不自动换行
set wildmenu          " 命令行补全增强
set nocompatible      " 禁用 Vi 兼容模式
set tabstop=4         " Tab 宽度为 4
set shiftwidth=4      " 缩进宽度为 4
set expandtab         " Tab 转空格
set smarttab          " 智能 Tab
set autoindent        " 自动缩进
set smartindent       " 智能缩进
syntax on             " 语法高亮

" 前导键(Leader 键)
let mapleader=";"     " 将 Leader 键设为分号

" 快捷键映射
nmap LB 0             " 跳到行首
nmap LE $             " 跳到行尾
nmap <Leader>q :q<CR> " 关闭当前窗口
nmap <Leader>w :w<CR> " 保存文件
nmap <Leader>Q :qa!<CR> " 强制退出所有窗口

" 窗口切换
nnoremap nw <C-W><C-W>    " 循环切换窗口
nnoremap <Leader>lw <C-W>l " 切换到右侧窗口
nnoremap <Leader>hw <C-W>h " 切换到左侧窗口
nnoremap <Leader>kw <C-W>k " 切换到上方窗口
nnoremap <Leader>jw <C-W>j " 切换到下方窗口

" 自动重新加载配置文件
autocmd BufWritePost $MYVIMRC source $MYVIMRC
" === 鼠标设置 ===
set mouse=a                   " 全模式支持(不会显示注释文字)
" 新建文件自动模板
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
func SetTitle()
        if &filetype == 'sh'
    call setline(1, "##########################################################################")
    call append(line("."), "# File Name: ".expand("%"))
    call append(line(".")+1, "# Author: zhangxiaowei")
    call append(line(".")+2, "# mail: 884377698@qq.com")
    call append(line(".")+3, "# Created Time: ".strftime("%c"))
    call append(line(".")+4, "#########################################################################")
    call append(line(".")+5, "#!/bin/bash")
    call append(line(".")+6, "")
else
    call setline(1, "/*************************************************************************")
    call append(line("."), "    > File Name: ".expand("%"))
    call append(line(".")+1, "    > Author: zhangxiaowei")
    call append(line(".")+2, "    > Mail: 884377698@qq.com")
    call append(line(".")+3, "    > Created Time: ".strftime("%c"))
    call append(line(".")+4, " ************************************************************************/")
    call append(line(".")+5, "")
endif
    if &filetype == 'cpp'
                call append(line(".")+8, "")
        endif
        if &filetype == 'c'
                call append(line(".")+7, "")
        endif
        autocmd BufNewFile * normal G
endfunc

功能

  1. 可以鼠标点击后光标跳转到对应的位置
  2. 创建新文件后,自动加注释到开头
  3. 自动缩进等
相关推荐
亚空间仓鼠18 分钟前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...1 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家1 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun341 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
草莓熊Lotso2 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu2 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
-SGlow-2 小时前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器
江畔何人初2 小时前
TCP的三次握手与四次挥手
linux·服务器·网络·网络协议·tcp/ip
Trouvaille ~2 小时前
【MySQL篇】数据库操作:从创建到管理
linux·数据库·mysql·oracle·xshell·ddl
酸钠鈀2 小时前
AI WB2 SDK Ubuntu 环境搭建
linux·运维·ubuntu