Ubuntu下vim的设置

本文介绍了如何在Linux下配置Vim编辑器以实现更高效的代码编辑体验。包括如何创建私有的.vimrc文件、添加语法高亮、设置自动缩进等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下由于安装Vim后,Vim的默认设置不是很好用,应该我们可以按照自己的要求来对其进行配置文件的设置,以方便我们的使用。

首先,找到vim的配置文件,一般在/etc/vim下,这个是公共的vim配置文件,为了不破坏公共的配置文件,我们可以复制一份到我们自己用户的目录下,建立私有的配置文件。命令为:“.vimrc”
命令如下:cd /etc/vim
cp vimrc /home/administrator/.vimrc


然后,我们就可以对自己用户下的.vimrc进行设置了。


" All system-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 those settings, you should
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
" everytime an upgrade of the vim packages is performed.  It is recommended to
" make changes after sourcing debian.vim since it alters the value of the
" 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
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. Uncommenting the
" following enables syntax highlighting by default.
if has("syntax")
  syntax on
endif

" If using a dark background within the editing area and syntax highlighting
" 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 and plugins
" 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 matching brackets.
"set ignorecase		" Do case insensitive matching
"set smartcase		" Do smart case matching
"set incsearch		" Incremental search
"set autowrite		" Automatically save before commands like :next and :make
"set hidden             " Hide buffers when they are abandoned
"set mouse=a		" Enable mouse usage (all modes)

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

从上可以看出vim的默认设置非常的简单,因此,我们根据自己的需要来添加所需要的设置,以下是我需要用的配置信息,如果有其他的需要可以上网搜一下

1) 添加以下语句来使得语法高亮显示:
syntax on
2)设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
设置(软)制表符宽度为4:
set tabstop=4
set softtabstop=4


3)设置缩进的空格数为4
set shiftwidth=4

4)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
set autoindent

5)设置使用 C/C++ 语言的自动缩进方式:
set cindent

6)如果想在左侧显示文本的行号,可以用以下语句:
set nu

7)设置高亮搜索
set hlsearch

<think>我们被要求配置Vim,使得它能够根据文件类型自动设置行号。这意味着当打开某种类型的文件(如C文件、Python文件等)时,Vim会自动显示行号,而对于其他类型的文件则不显示(或者根据需要显示)。这可以通过Vim的自动命令(autocmd)来实现。在Vim中,我们可以使用`autocmd`来根据文件类型(由`FileType`事件触发)设置不同的选项。例如,我们想要在C文件和Python文件中显示行号,而在文本文件中不显示行号。但是,用户的需求是“根据文件类型自动设置行号”,并没有指定具体哪些文件类型显示行号。因此,我们可以提供一个示例配置,让用户自己根据需要调整。通常,我们会将配置写入用户主目录下的.vimrc文件中(即~/.vimrc)。如果该文件不存在,可以创建它。下面是一个配置示例,它实现了:-对于C/C++文件(扩展名为.c,.cpp,.h等)、Python文件(.py)、Java文件(.java)等编程语言文件,自动显示行号。-对于其他文件类型,比如纯文本文件(.txt)则不显示行号(或者也可以设置为显示,根据用户需求)。但是注意,用户可能希望完全自定义。因此,我们可以提供一种灵活的配置方式。步骤:1.打开或创建~/.vimrc文件。2.在文件中添加自动命令。示例配置:```vim"根据文件类型自动设置行号autocmdFileTypec,cpp,java,python,shsetnumberautocmdFileTypetextsetnonumber```上述配置中,第一行表示当打开的文件类型为c,cpp,java,python,sh时,设置行号(setnumber)。第二行表示当文件类型为text时,不显示行号(setnonumber)。但是,文件类型的检测依赖于Vim的文件类型检测功能。通常,Vim会根据文件扩展名和内容自动检测文件类型。我们可以通过`:setfiletype?`命令查看当前文件的文件类型。另外,我们也可以使用一个自动命令来为所有文件类型设置行号,然后为特定文件类型关闭行号,或者反过来。这取决于用户的偏好。另一种常见做法是:只为源代码文件显示行号,而其他文件不显示。我们可以这样写:```vim"默认不显示行号setnonumber"对于特定文件类型显示行号autocmdFileTypec,cpp,java,python,sh,ruby,php,html,css,javascriptsetnumber```这样,默认情况下不显示行号,只有当打开指定类型的文件时才显示行号。或者,如果用户希望默认显示行号,但某些文件类型不显示,可以:```vim"默认显示行号setnumber"对于特定文件类型不显示行号autocmdFileTypetext,markdownsetnonumber```用户可以根据自己的需求调整。因此,我们可以建议用户编辑~/.vimrc文件,并加入类似上面的配置。操作步骤:1.打开终端,输入以下命令编辑vim配置文件:`vim~/.vimrc`2.如果用户已经有了其他配置,可以在适当位置添加上述自动命令。注意,自动命令应该放在文件类型检测启用之后(但通常~/.vimrc中默认没有启用文件类型检测的命令,因为Vim默认是启用的)。如果用户没有特殊配置,直接添加即可。3.例如,用户想要默认显示行号,但文本文件不显示,则添加:`setnumber``autocmdFileTypetextsetnonumber`4.保存并退出(在Vim中按ESC,输入`:wq`)。5.测试:创建一个C文件(test.c)和一个文本文件(test.txt),分别用vim打开,观察是否按预期显示行号。注意:自动命令可能会重复添加,为了避免多次添加相同的自动命令,可以在添加之前先清除已有的自动命令组。但通常对于个人配置文件,我们只配置一次,所以问题不大。如果需要更健壮,可以创建一个自动命令组。例如:```vim"清除已有的自动命令组(命名为'filetype_line_number',可以自定义)augroupfiletype_line_numberautocmd!autocmdFileTypec,cpp,pythonsetnumberautocmdFileTypetextsetnonumberaugroupEND```这样,每次重新加载.vimrc时,先清除该组内的自动命令,然后再重新定义,避免重复。根据用户的需求,我们提供第二种方式(默认不显示行号,特定文件类型显示)的完整示例:```vim"设置默认不显示行号setnonumber"定义自动命令组,避免重复augroupauto_set_numberautocmd!"对于以下文件类型自动显示行号autocmdFileTypec,cpp,java,python,sh,ruby,php,html,css,javascriptsetnumberaugroupEND```用户可以根据需要修改`autocmdFileType`后面的文件类型列表。另外,用户可能还希望同时设置其他选项,比如缩进等,也可以放在同一个自动命令中,例如:```vimautocmdFileTypepythonsettabstop=4shiftwidth=4expandtab```这样,对于python文件,不仅设置了行号,还设置了缩进。综上所述,我们通过Vim的自动命令功能实现了根据文件类型自动设置行号。参考引用中提供了关于设置行号、缩进等的基本配置,但并未涉及根据文件类型自动设置。因此,我们根据Vim的高级特性(autocmd)来满足用户需求。注意:用户可能需要先安装vim(如果还没有安装的话),安装方法如引用[^1]所述:`sudoapt-getinstallvim`。最后,测试配置是否生效:-创建一个test.py文件:`vimtest.py`,应该显示行号。-创建一个test.txt文件:`vimtest.txt`,应该不显示行号。如果用户需要其他文件类型的支持,只需将文件类型添加到列表中。文件类型可以通过在vim中打开文件后执行`:setfiletype?`来查看。希望这能解决用户的问题。根据要求,生成相关问题:§§相关问题§§1.如何查看Vim当前的文件类型?2.如何在Vim中为不同的文件类型设置不同的缩进?3.Vim自动命令(autocmd)还有哪些常见应用场景?4.如何避免Vim配置中的自动命令重复执行?</think>要在Ubuntu中配置Vim根据文件类型自动设置行号,可以通过`.vimrc`文件实现自动命令(autocmd)。以下是详细步骤: ### 配置步骤 1. **编辑Vim配置文件** 打开终端,执行: ```bash vim ~/.vimrc ``` 2. **添加自动命令配置** 在`.vimrc`文件中添加以下内容: ```vim " 默认关闭行号 set nonumber " 根据文件类型自动启用行号 autocmd FileType c,cpp,java,python,sh,html,css,javascript set number ``` - `set nonumber`:默认关闭行号 - `autocmd FileType`:当检测到指定文件类型时触发 - 支持的文件类型:`c`, `cpp`, `java`, `python`等(按需修改) 3. **保存并退出** 按`ESC`后输入`:wq`保存 ### 验证配置 - 测试C文件:`vim test.c` → 应**显示行号** - 测试文本文件:`vim test.txt` → 应**不显示行号** ### 扩展配置(可选) 若需为特定文件类型设置不同缩进,可追加: ```vim " 为Python文件设置4空格缩进 autocmd FileType python set tabstop=4 shiftwidth=4 expandtab " 为Makefile保持Tab缩进 autocmd FileType make set noexpandtab tabstop=4 ``` ### 技术说明 1. **文件类型检测** Vim通过`filetype`插件识别文件类型(默认启用),检测规则: - 文件扩展名(如`.py`) - 文件开头内容(如`#!/bin/bash`) 2. **自动命令原理** `autocmd FileType <类型> <命令>`监听文件打开事件,匹配类型后执行命令[^3]。 > 提示:通过`:set filetype?`可查看当前文件的检测类型;完整文件类型列表见Vim文档`:h filetypes`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值