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

相关文章

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

如何配置Spring Boot中的Jackson序列化

《如何配置SpringBoot中的Jackson序列化》在开发基于SpringBoot的应用程序时,Jackson是默认的JSON序列化和反序列化工具,本文将详细介绍如何在SpringBoot中配置... 目录配置Spring Boot中的Jackson序列化1. 为什么需要自定义Jackson配置?2.

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt