在今天学习vim的过程中遇到一个问题(配置代码也在其中):
安装vim
apt-get install vim
配置vim,依次输入如下指令进行配置:
cp /etc/vim/vimrc ~/.vimrc #复制到根目录
cd ~ #切换到配置文件所在目录
ls -a
vim .vimrc
按此修改
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on
" 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 load indentation rules and plugins
" according to the detected filetype.
filetype plugin indent on
" 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)
setlocal noswapfile " 不要生成swap文件
set bufhidden=hide " 当buffer被丢弃的时候隐藏它
colorscheme evening " 设定配色方案
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=2 " 设定 << 和 >> 命令移动时的宽度为 2
set softtabstop=2 " 使得按退格键时可以一次删掉 2 个空格
set tabstop=2 " 设定 tab 长度为 2
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
set backupcopy=yes " 设置备份时的行为为覆盖
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
set novisualbell " 关闭使用可视响铃代替呼叫
set t_vb= " 置空错误铃声的终端代码
set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start " 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ Ln\ %l,\Col \ %c/%L%) " 设置在状态行显示的信息
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为 1
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> " 用空格键来开关折叠
对.vimrc文件修改完成以后,保存退出。
终端输入vim,打开vim编辑器有如下变化
产生疑问:
明明未修改vim软件下的vimrc文件为什么也可以修改配置?
解答:
在Terminal中输入
vim --version
可见到如下输出:
这个意思是vimrc的读取顺序是
系统中的vimrc(/etc/vim/vimrc) → home下面的隐藏文件(~/.vimrc)。依次类推。
/etc/vim/vimrc,这个位置vim是sudo,即root权限的vim所要读取的文件。
如果在终端输入
sudo vim
打开vim,会发现没有实现相应修改
因此,得出结论:
通过sudo 进入vim,而sudo 进入代表当前的用户身份是root,所以vim默认读取的配置文件是系统根目录下/.vimrc(/etc/vim/vimrc)而非~/.vimrc。
因此,算是Linux的一个特点。只有对应用户下的.vimrc文件才会被执行。
不同用户文件夹下都可以存在一个配置文件。且可以实现不同的配置。
如下图,home下有多个用户,每个用户都可以由有一个.vimrc