[root@oldboy scripts]# echo 'alias vi=vim' >> /etc/bashrc
[root@oldboy scripts]# tail -1 /etc/bashrc
alias vi=vim
[root@oldboy scripts]# source /etc/bashrc
经过上述调整后,当用vi命令时,会自动被vim替换。
1-3. 配置.vimrc的重要参数
Linux环境下的vim编辑器默认功能不够强大,如果要进行Shell脚本的开发,还需要进行适当的设置,从而达到高效开发的目的。vim编辑器有一个可以用来调整配置的配置文件,默认放置在用户家目录下,全路径及名字组合为:~/.vimrc(全局路径为/etc/vimrc),这是一个隐藏文件。
~/.vimrc配置内容如下:
cat > ~/.vimrc << eof
""""""""""""""""""""
""""""""""""""""""""
set nocompatible
set history=100
filetype on
filetype plugin on
filetype indent on
set autoread
set mouse=a
""""""""""""""""""""
""""""""""""""""""""
syntax enable
""设置配色
set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00
""""""""""""""""""""
""""""""""""""""""""
set foldenable
set foldmethod=manual
set foldcolumn=0
setlocal foldlevel=3
set foldclose=all
nnoremap <space> @=((foldclosed(line('.')) < 0) 'zc' : 'zo')<CR>
""""""""""""""""""""
""""""""""""""""""""
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set smarttab
set ai
set si
set wrap
set sw=4
""""""""""""""""""""
""""""""""""""""""""
set wildmenu
set ruler
set cmdheight=1
set lz
set backspace=eol,start,indent
set whichwrap+=<,>,h,l
set magic
set noerrorbells
set novisualbell
set showmatch
set mat=2
set hlsearch
set ignorecase
""""""""""""""""""""
""""""""""""""""""""
set encoding=utf-8
set fileencodings=utf-8
set termencoding=utf-8
""""""""""""""""""""
""""""""""""""""""""
set smartindent
set cin
set showmatch
set guioptions-=T
set guioptions-=m
set vb t_vb=
set laststatus=2
set pastetoggle=<F9>
set background=dark
highlight Search ctermbg=black ctermfg=white guifg=white guibg=black
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call setline(2, "# Author: Wu ShuaiShuai")
call setline(3, "# Blog2: http://www.cnblogs.com/wushuaishuai")
call setline(4, "# Time: ".strftime("%F %T"))
call setline(5, "# Name: ".expand("%"))
call setline(6, "# Version: v1.0")
call setline(7, "# Description: This is a Script.")
endif
endfunc
退出重新登录后.vimrc生效,同样适用于普通用户。
在代码量较大时比较有用的高级功能——代码折叠(依赖.vimrc配置,当然也可以以命令模式执行)
在命令模式下,可以把光标定位到当前的第2行,然后执行zf3j命令,便可将第2行及其下的3行缩进,其他缩进也是如此。
若把光标放到对应折叠后的行上,按空格键即可展开上述折叠的行。
2-7-2. 列块(可视)模式
Ctrl+v,启用列块模式,之后移动鼠标,可以选中某一个矩形块,对于有规律的表格可以用这个功能。
目前当前光标所在的位置是右下角,可以在这个块的四角进行移动光标,方法就是按o(小写),O(大写)来切换四个顶点。
(1).删除或剪切操作
Ctrl+v,进入列块模式,选中需要删除的内容
按d(小写)即可删除选中区域
按D(大写)删除选中区域及所在行后面的数据
(2).输入操作
Ctrl+v,进入列块模式,选中需要添加的内容
按I(大写)进入插入,然后输入“//”(你想输入的字符)
然后按ESC即可在其它行输入你想输入的字符了
(3).复制和粘贴操作
Ctrl+v,进入列块模式,选中需要复制的内容
按y(小写)复制内容,4 line yanked 说明复制了四行
然后移动光标到行首,按p(小写)在光标的后面一列输入内容,按P(大写)在光标前面一列输入内容
2-8-2. 关闭多窗口
可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。
:tabc 关闭当前窗口
:tabo 关闭所有窗口
:ctrl+w - 纵向缩小 (行数减少)
:res(ize) num 例如::res 5,显示行数调整为5行
:res(ize)+num 把当前窗口高度增加num行
:res(ize)-num 把当前窗口高度减少num行
:vertical res(ize) num 指定当前窗口为num列
:vertical res(ize)+num 把当前窗口增加num列
:vertical res(ize)-num 把当前窗口减少num列
:Ex 开启目录浏览器(可以浏览当前目录下的所有文件,并且可以选择)
:Vex 垂直分割窗当前窗口,并在一个窗口中开启目录浏览器
:Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器
:ls 显示当前buffer情况