鱼C论坛

 找回密码
 立即注册
查看: 1261|回复: 3

[已解决]有没有大佬推荐一下vim编辑器的常用配置?

[复制链接]
发表于 2023-7-21 20:32:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人刚开始使用Ubuntu,因为要学习编程,所以要习惯使用vim编辑器,但是很多时候觉得不是很方便,所以想问一下有没有想在vimrc文件里面配置一下,但是我不知道要配置一些什么,想让大佬给我推荐一下有没有什么比较好用的配置
最佳答案
2023-7-21 20:33:22
在配置Vim编辑器之前,强烈推荐你使用vim-plug插件管理器来安装和管理其他插件。以下是一些常用的Vim配置和插件:

1. 常规设置:
   - 设置行号:set number
   - 启用语法高亮:syntax enable
   - 设置自动缩进:set autoindent
   - 启用括号匹配:set showmatch
   - 启用搜索时忽略大小写:set ignorecase
   - 设置tab为4个空格:set tabstop=4 shiftwidth=4 expandtab

2. 主题和外观:
   - 安装和使用适合你的喜好的主题,如:gruvbox, molokai, dracula等。可以通过vim-plug安装。
   - 启用状态栏:set laststatus=2
   - 配置状态栏显示的信息,如文件类型、光标位置等:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime('%c')}

3. 插件:
   - vim-airline: 为状态栏提供美观的外观,并显示有关文件状态、Git信息等。
   - NERDTree: 提供文件浏览器功能。
   - CtrlP: 快速查找和打开文件。
   - YouCompleteMe: 强大的代码自动补全插件。
   - Ale: 语法和风格检查器,可用于各种编程语言。
   - vim-commentary: 快速注释代码。
   - vim-surround: 快速添加、修改和删除括号、引号等围绕文本的字符。
   - vim-gitgutter: 在侧边栏显示Git的变动情况。

4. 快捷键映射:
   - 将ESC键映射为jjjk,以便更快地退出插入模式:inoremap jj <Esc>inoremap jk <Esc>
   - 提供快速保存文件的快捷键映射:nnoremap <leader>s :w<CR>

这只是一些常用的Vim配置和插件示例,你可以根据个人喜好进行进一步定制。在~/.vimrc文件中添加上述配置,并使用vim-plug来安装插件。完成配置后,重新启动Vim即可生效。希望这些推荐对你有所帮助!

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-21 20:33:19 | 显示全部楼层
在 .vimrc 文件中,你可以进行各种配置以改善你的Vim使用体验。以下是一些我建议的常用和有用的配置。

1. 设置行号:

   set number
   

   在Vim的左边显示行号可以帮助你更快地定位代码。

2. 设置搜索高亮:

   set hlsearch
   

   这个命令会高亮显示你的搜索结果。

3. 启用语法高亮:

   syntax on
   

   这个命令可以让Vim显示语法高亮,让代码更易于阅读。

4. 设置自动缩进:

   set autoindent
   set smartindent
   

   这两个命令可以让Vim自动按照代码的结构进行缩进,让你的代码看起来更整齐。

5. 设置tab键的空格数:

   set tabstop=4
   

   这个命令可以设置按下tab键时插入的空格数。

6. 启用鼠标:

   set mouse=a
   

   这个命令可以让你在Vim中使用鼠标。

这些只是基础配置,Vim的强大在于其可定制性极高。根据你的需求,你可能还需要安装各种插件,比如自动完成插件,文件树插件,代码片段插件等。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-21 20:33:22 | 显示全部楼层    本楼为最佳答案   
在配置Vim编辑器之前,强烈推荐你使用vim-plug插件管理器来安装和管理其他插件。以下是一些常用的Vim配置和插件:

1. 常规设置:
   - 设置行号:set number
   - 启用语法高亮:syntax enable
   - 设置自动缩进:set autoindent
   - 启用括号匹配:set showmatch
   - 启用搜索时忽略大小写:set ignorecase
   - 设置tab为4个空格:set tabstop=4 shiftwidth=4 expandtab

2. 主题和外观:
   - 安装和使用适合你的喜好的主题,如:gruvbox, molokai, dracula等。可以通过vim-plug安装。
   - 启用状态栏:set laststatus=2
   - 配置状态栏显示的信息,如文件类型、光标位置等:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime('%c')}

3. 插件:
   - vim-airline: 为状态栏提供美观的外观,并显示有关文件状态、Git信息等。
   - NERDTree: 提供文件浏览器功能。
   - CtrlP: 快速查找和打开文件。
   - YouCompleteMe: 强大的代码自动补全插件。
   - Ale: 语法和风格检查器,可用于各种编程语言。
   - vim-commentary: 快速注释代码。
   - vim-surround: 快速添加、修改和删除括号、引号等围绕文本的字符。
   - vim-gitgutter: 在侧边栏显示Git的变动情况。

4. 快捷键映射:
   - 将ESC键映射为jjjk,以便更快地退出插入模式:inoremap jj <Esc>inoremap jk <Esc>
   - 提供快速保存文件的快捷键映射:nnoremap <leader>s :w<CR>

这只是一些常用的Vim配置和插件示例,你可以根据个人喜好进行进一步定制。在~/.vimrc文件中添加上述配置,并使用vim-plug来安装插件。完成配置后,重新启动Vim即可生效。希望这些推荐对你有所帮助!

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-21 23:01:00 | 显示全部楼层
不带ycm的版本
" 定义<Leader>
let mapleader=";"

set number              " 显示行号
set laststatus=2        " 总是显示状态栏
set scrolloff=3         " 光标移动到buffer的顶部和底部时保持3行距离
set nowrap              " 禁止折行
set hlsearch            " 高亮显示搜索结果
set incsearch           " 开启实时搜索
set ignorecase          " 搜索时大小写不敏感
set nocompatible        " 关闭兼容模式
set wildmenu            " vim自身命令行模式智能补全
set noshowmatch         " 不要高亮匹配括号

" 关键字高亮
syntax on

" 编码格式
set encoding=utf-8
set fileencodings=utf-8,default,gb18030,gbk,gb2312

" 启用自动备份
set backup

" 折叠
set foldmethod=manual   " 手工定义折叠
set foldlevel=99        " 启动vim默认不折叠

" 设置快捷键将选中文本复制至系统剪贴板
vnoremap <Leader>y "+y

" 设置快捷键将系统剪贴板内容粘贴至vim
nmap <Leader>p "*p
nmap <Leader>P "*P

" 自动跳到上一次的光标位置
au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" | endif

" 关闭插入模式识别 <Esc> 开始的功能键
set noesckeys

" 设置不可见字符的显示方式
set list
set listchars=tab:-->,space:.
highlight SpecialKey ctermfg=darkgray

" C/C++ 代码格式
set cinoptions=l1,g0

" 设置缩进
autocmd BufNewFile,BufReadPost,BufNew * exec "call SetTab(4)"
autocmd BufNewFile,BufReadPost Makefile exec "set noexpandtab"
func SetTab(size)
    exec 'set tabstop='.a:size
    exec 'set softtabstop='.a:size
    exec 'set shiftwidth='.a:size
    set expandtab
    set cindent
    set smartindent
    set autoindent
endfunc

" 新建文件,自动插入文件头
autocmd BufNewFile *.sh,*.py,*.c,*.cpp,*.h,*.hpp exec ":call SetTitle()"
func SetTitle()
    if expand("%:e") == 'sh'
        call setline(1, "#!/bin/bash")
        call append(line("$"), "")
        exec ":2"
    elseif expand("%:e") == 'py'
        call setline(1, "#!/usr/bin/env python")
        call append(line("$"), "#coding=utf-8")
        call append(line("$"), "")
        exec ":3"
    elseif expand("%:e") == 'c'
        if expand("%") == "main.c"
            call setline(1, "#include <stdio.h>")
            call append(line("$"), "")
            call append(line("$"), "int main(void) {")
            call append(line("$"), "    ")
            call append(line("$"), "    return 0;")
            call append(line("$"), "}")
            exec ":4"
        endif
    elseif expand("%:e") == 'cpp'
        if expand("%") == "main.cpp"
            call setline(1, "#include <iostream>")
            call append(line("$"), "")
            call append(line("$"), "int main() {")
            call append(line("$"), "    ")
            call append(line("$"), "    return 0;")
            call append(line("$"), "}")
            exec ":4"
        endif
    elseif expand("%:e") == 'h' || expand("%:e") == 'hpp'
        call setline(1, "#ifndef _".toupper(expand("%:r"))."_".toupper(expand("%:e"))."_")
        call append(line("$"), "#define _".toupper(expand("%:r"))."_".toupper(expand("%:e"))."_")
        call append(line("$"), "")
        call append(line("$"), "#endif")
        exec ":3"
    endif
endfunc
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 01:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表