Ubuntu下Vim配置

2024-09-02 22:18
文章标签 配置 ubuntu vim

本文主要是介绍Ubuntu下Vim配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 这几周突然对linux感兴趣。于是装了Ubuntu的虚拟机。在下边自己配置Vim,走了不少弯路。今天算是终于初步配出来了。现将自己的配置的功能简述如下:

    1、实现语法高亮;按照语言格式自动缩进;括号匹配;支持鼠标等基本功能;

    2、安装TagList插件;

    3、自动补全及加速自动补全的插件SuperTab

   注:此过程参考http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx

   其中ctags-5.8.tar.gz的安装过程如下: 
 1)到http://ctags.sourceforge.net/下载ctags源码ctags-5.8.tar.gz 
 2)解压并安装 
   命令行:cd ctags-5.8 
   命令行:./configure && make &&make install


    我的Vimrc文件配置如下:

 " Allsystem-wide defaults are set in $VIMRUNTIME/debian.vim (usually just 
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to:runtime 
" you can find below.  If you wish to change any of thosesettings, you should 
" do it in this file (/etc/vim/vimrc), since debian.vim will beoverwritten 
" everytime an upgrade of the vim packages is performed.  It isrecommended to 
" make changes after sourcing debian.vim since it alters the value ofthe 
" 'compatible' option. 

" This line should not be removed as it ensures that various optionsare 
" properly set to work with the Vim-related packages available inDebian. 
runtime! debian.vim 

" Uncomment the next line to make Vim more Vi-compatible 
" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible'changes numerous 
" options, so any other options should be set AFTER setting'compatible'. 
set compatible 

" Vim5 and later versions support syntax highlighting. Uncommentingthe 
" following enables syntax highlighting by default. 
if has("syntax") 
  syntax on 
endif 

" If using a dark background within the editing area and syntaxhighlighting 
" turn on this option as well 
set background=dark 

" Uncomment the following to have Vim jump to the last position when 
" reopening a file 
if has("autocmd") 
au BufReadPost * if line("'\"") > 1 &&line("'\"") <= line("$") | exe "normal!g'\"" | endif 
endif 

" Uncomment the following to have Vim load indentation rules andplugins 
" according to the detected filetype. 
if has("autocmd") 
filetype plugin indent on 
endif 

" The following are commented out as they cause vim to behave a lot 
" differently from regular Vi. They are highly recommended though. 
set showcmd        " Show (partial)command in status line. 
set showmatch        " Show matchingbrackets. 
set ignorecase        " Do caseinsensitive matching 
set smartcase        " Do smart casematching 
set incsearch        " Incrementalsearch 
set autowrite        " Automaticallysave before commands like :next and :make 
set hidden          "Hide buffers when they are abandoned 
set mouse=a            "Enable mouse usage (all modes) 

"""""""""""""""""""""""""""""""""""""" 
语法着色与高亮设置 
""""""""""""""""""""""""""""""""""""""" 
" 
" "开启语法高亮 
syntax enable 
syntax on 
" 
" "配色 
colorscheme murphy 

" "设置高亮搜索 
set hlsearch 
" 
""""""""""""""""""""""""""""""""""""""" 
" " 文件设置 
""""""""""""""""""""""""""""""""""""""" 
" 
set encoding=utf-8 
set fileencoding=chinese 
set fileencodings=ucs-bom,utf-8,chinese 
set ambiwidth=double 
" 
" "检测文件的类型 
filetype on


" "默认无备份 
set nobackup 
set nowritebackup 
" 
""""""""""""""""""""""""""""""""""""""" 
" " 鼠标设置 
""""""""""""""""""""""""""""""""""""""" 
" "鼠标支持 
if has('mouse') 
set mouse=a 
endif 
" 
" "使鼠标用起来象微软 Windows,似乎正好解决连续多行缩进问题、退格问题 
behave mswin 
" 
""""""""""""""""""""""""""""""""""""""" 
" " 编辑器设置 
""""""""""""""""""""""""""""""""""""""" 
" 
"显示行号 
set number 
" 
"Tab 宽度 
set ts=4 
" 
" "自动缩进 
set sw=4 
" 
" "C/C++ 风格的自动缩进 
set cin 
" "设定 C/C++ 风格自动缩进的选项 
set cino=:0g0t0(sus 
" 
" "打开普通文件类型的自动缩进 
set ai 
" 
" "在编辑过程中,在右下角显示光标位置的状态行 
set ruler 
" 
" "显示匹配括号 
set showmatch 
" 
" "insert模式下能用删除键进行删除 
set backspace=indent,eol,start 
" 
" "代码折叠命令 za 
set foldmethod=syntax 
set foldlevel=100  "启动vim时不要自动折叠代码 
" 
" "设置字体 
set guifont=文泉驿等宽微米黑\ 13 
" 
" "当右键单击窗口的时候,弹出快捷菜单 
set mousemodel=popup 
" 
" "自动换行 
if (has("gui_running")) "图形界面下的设置 
" 
" "指定不折行。如果一行太长,超过屏幕宽度,则向右边延伸到屏幕外面 
set nowrap 
" "添加水平滚动条。如果你指定了不折行,那为窗口添加一个水平滚动条就非常有必要 
 
set guioptions+=b 
" 
" else "字符界面下的设置 
set wrap 
endif 
" 
""""""""""""""""""""""""""""""""""""""" 
" " 快捷键设置 
""""""""""""""""""""""""""""""""""""""" 
" "<F1> 菜单栏与工具栏隐藏与显示动态切换 
" set guioptions-=m 
" set guioptions-=T 
" map <silent> <F1> :if &guioptions =~# 'T'<Bar> 
" \set guioptions-=T <Bar> 
" \set guioptions-=m <bar> 
" \else <Bar> 
" \set guioptions+=T <Bar> 
" \set guioptions+=m <Bar> 
" \endif<CR> 
" 
" "<F2>code_complete.vim插件:函数自动完成 
if !exists("g:completekey") 
let g:completekey = "<F2>"   "hotkey 
endif 
" 
" "<F3><F4>大小写转换 
" map <F3> gu 
" map <F4> gU 
" 
" "当前目录生成tags语法文件,用于自动完成,函数提示:code_complete.vim 
"OmniCppComplete.vim ... 
map <F5> :!ctags -R --c-kinds=+p --fields=+S . <CR> 
map <F5> :!ctags -R --c-kinds=+p --c++-kinds=+p --fields=+iaS--extra=+q . 
"<CR> 
" 
" "函数和变量列表 
map <F6> :TlistToggle<CR> 
" 
" "文件浏览器 
map <F7> :WMToggle<CR> 
let g:winManagerWindowLayout = "FileExplorer" 
" 
" "文件树状列表 
map <F8> :NERDTree<CR> 
" 
" "映射复制、粘贴、剪贴ctrl+c ctrl+v ctrl+x 
map <C-V> "+pa<Esc> 
map! <C-V> <Esc>"+pa 
map <C-C> "+y 
map <C-X> "+x 
" 
" " 映射全选 ctrl+a 
map <C-A> ggVG 
map! <C-A> <Esc>ggVG 
" 
" " 多行缩进 
map <Tab> > 
map <S-Tab> < 
" 
""""""""""""""""""""""""""""""""""""""" 
" " 插件设置 
""""""""""""""""""""""""""""""""""""""" 
" 
" "开启OmniCppComplete.vim 
set nocp 
filetype plugin on 
" 
" "2Html插件,启用XHtml css 
" :let html_number_lines=1 
" :let html_use_css=1 
" :let use_xhtml=1 
" 
" "fencview.vim 插件设置 
let g:fencview_autodetect = 1  "打开文件时自动识别编码 
let g:fencview_checklines = 10 "检查前后10行来判断编码 
" 
"autocomplpop.vim & supertab.vim 插件设置 
let g:AutoComplPop_IgnoreCaseOption=1 
set ignorecase 
" 
""""""""""""""""""""""""""""""""""""""" 
" " 其他设置 
""""""""""""""""""""""""""""""""""""""" 
" 
" "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 
set nocompatible 

"使用taglist 
let Tlist_Show_One_File=1 
let Tlist_Exit_OnlyWindow=1 

"使用C.vim 
filetype plugin on 

"所有用户使用vim功能一样 
set nu 

"设置自动补齐 
filetype plugin indent on 
set completeopt=longest,menu 


if has("autocmd") && exists("+omnifunc") 
     autocmd Filetype * 
   \ if &omnifunc == "" | 
   \   setlocal omnifunc=syntaxcomplete#Complete | 
   \ endif 
endif 

let g:SuperTabDefaultCompletionType="<C-X><C-]>" 
设置按下<Tab>后默认的补全方式默认是<C-P>, 
现在改为<C-X><C-L>(其为根据自己定义的结构体自动补齐). 
关于<C-P>的补全方式, 
还有其他的补全方式你可以看看下面的一些帮助: 
" :help ins-completion 
" :help compl-omni 

let g:SuperTabRetainCompletionType=2 
" 0 - 不记录上次的补全方式 
" 1 - 记住上次的补全方式,直到用其他的补全命令改变它 
" 2 - 记住上次的补全方式,直到按ESC退出插入模式为止 

" Source a global configuration file if available 
if filereadable("/etc/vim/vimrc.local") 
  source /etc/vim/vimrc.local 
endif 

这篇关于Ubuntu下Vim配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131221

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件