重新配置时,顺手重新整理一下这篇文章
##一、安装、配置
先下载它吧
https://github.com/b4winckler/macvim/releases
安装完毕后,运行,发现不对,传说中的透明背景呢?别急,这里先配置一下:
Edit->StartUp Settig
"不兼容vi模式
set nocompatible
"显示行号
set number
"语法高亮
syntax on
"按照C语法自动缩进
set cindent
"设置缩进长度
"详见http://dddspace.com/2010/03/vim-indentation-and-space-config.html
set tabstop=8
set shiftwidth=8
set softtabstop=8
set noexpandtab
"显示括号对应
set showmatch
"实时显示搜索结果
set incsearch
"编码设置
set encoding=utf-8
set fileencodings=gb2312,ucs-bom,utf-8,utf-16,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"字体设置
set guifont=Arial_monospaced_for_SAP:h16
"设置颜色主题
colorscheme torte
"设置透明度
set transparency=20
保存重启即可。
##二:插件
装其它插件前,强列建义先安装pathogen.vim,它将大大减轻你管理和安装插件的复杂度。
pathogen.vimi
https://github.com/tpope/vim-pathogen
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
word_complete.vim http://www.vim.org/scripts/script.php?script_id=73
一个自动补全的插件,它是跟据上下文进行的补全的,挺好用的
ZenCoding.vim http://www.vim.org/scripts/script.php?script_id=2981
有写HTML的对应个应该很清楚
The NERD tree
http://www.vim.org/scripts/script.php?script_id=1658
目录浏览,安装后默认不调用,可以配置快捷将其调用与隐藏
let mapleader = “,”
nmap n :NERDTreeToggle
这样,<,+n>即可调用
The NERD Commenter
http://www.vim.org/scripts/script.php?script_id=1218)
在normal模式下进行快速注释,我常用到就下面几个:
<,+cc>注释当前行,或所选行,
<,+space>切换注释和不注释
<,+cs>多行注释
前面可以加数字来指定注释行数
syntastic
https://github.com/scrooloose/syntastic
代码语法检查的接口,下载好后还是一样,放到buddle文件夹自动加载。
然后配置vimrc
""syntax
"" Set symbol characters
let g:syntastic_error_symbol='✗'
let g:syntastic_warning_symbol='⚠'
"在打开文件的时候检查
let g:syntastic_check_on_open=1
"" Open and close error list console automatically
"let g:syntastic_auto_loc_list=1
由于各个语言是要分别配置的,所以比较麻烦。
###php:
php比较方便,打开syntax_checkers/php.vim
找到display_errors=0改为display_errors=1
配置vimrc:
et g:syntastic_phpcs_conf = "--tab-width=4 --standard=CodeIgniter"
let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]'
这样就OK了,每次打开或保存时都会检查语法。
###javascript:
这个有点麻烦,要用到jshint
首先要安装npm,一个nodejs模块打包安装命令。
http://nodejs.org/download/
安装完毕之后,在终端执行下面指令,安装jshint:
sudo npm install jshint -g
输入密码,回车
等它安装完后,输入终端jshint,有响应即代表安装成功。
然后配置vimrc:
"" Choose a Javascript syntax checker
let g:syntastic_javascript_syntax_checker="jshint"
let g:syntastic_javascript_jshint_conf="~/jshintrc.json"
可以看到上面有个路径”~/jshintrc.json”,它用来配置检查器的风格,这是jshint和jslint最大的区别。
新建一个json文件,/用户/[yourname]/jshintrc.json,内容如下:
{curly:true}
意思为在if/for等block必须使用{},否则报错,更多配置请移步
http://jshint.org/docs/
##三、技巧
###1)转编码:
在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename(这个命令对windows的ANSI编码非常有效)。
iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
###2)查找替换
:%s/foo/bar/g
Find each occurrence of ‘foo’ (in all lines), and replace it with ‘bar’.
:s/foo/bar/g
Find each occurrence of ‘foo’ (in the current line only), and replace it with ‘bar’.
:%s/foo/bar/gc
Change each ‘foo’ to ‘bar’, but ask for confirmation first.
:%s/\<foo\>/bar/gc
Change only whole words exactly matching ‘foo’ to ‘bar’; ask for confirmation.
:%s/foo/bar/gci
Change each ‘foo’ (case insensitive) to ‘bar’; ask for confirmation.
This may be wanted after using :set noignorecase to make searches case sensitive (the default).
:%s/foo/bar/gcI
Change each ‘foo’ (case sensitive) to ‘bar’; ask for confirmation.
This may be wanted after using :set ignorecase to make searches case insensitive.
##四、问题
###中文输入法:
我用的是QQ五笔,但在编辑模式中输入中文时,常常会触发MacVim的命令,原因是输是输入法没有完全截获按键;
解决方法:在命令行输入以下命令
defaults write org.vim.MacVim MMUseInlineIm 0
##五、在终端启动
下载后有一个mvim文件,将其拷贝到
$sudo cp -f mvim /usr/bin/
这里在终端通过mvim指令即可运行或编辑文件,编辑文件每次都是新建窗口,让他支持tab可以编辑这个mvim文件,首行加上
Shell
tabs=true
然后最后一个if 块替换成
# Last step: fire up vim.
if [ "$gui" ]; then
if $tabs && [[ `$binary --serverlist` = "VIM" ]]; then
exec "$binary" -g $opts --remote-tab-silent ${1:+"$@"}
else
exec "$binary" -g $opts ${1:+"$@"}
fi
else
exec "$binary" $opts ${1:+"$@"}
fi