热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OSX上的vim配置:从Linux到Mac,C/Java到JS,HTML

在linux上工作的有两种人:用vi的,和用emacs。我身边的人多数是vier,自己也深爱之。近来改成用MacbookPro,开发也从CJAVA转而接触到JS,HTML,代码编辑器的

在linux上工作的有两种人:用vi的,和用emacs。我身边的人多数是vier, 自己也深爱之。 近来改成用Macbook Pro,开发也从C/JAVA转而接触到JS, HTML,代码编辑器的配置自然也要跟上。

Mac上做可选优秀编辑器或者IDE很多,Sublime Text, TextWrangler, Eclipse等,但是VIM几乎无所不能的插件库,以及速度快的优势还是几乎无可替代的。并且是完全的Open Source, 不做crack那些商业软件的事情。所以做了一番配置和插件的研究,主要达到这样几个特性要求:

1. 代码浏览时候定义引用的跳转。就像SourceInsight。还是ctags + taglist。Mac上这点让很不给力。注意,在mac上自带ctags, 但是它不是我们想要的Exuberant CTags,因此功能不兼容taglist。在Mac,可以用port 下载正确的ctags,在.vimrc中需要如下配置:

 
 
" use exuberant ctags tool instead of Mac ctags
let Tlist_Ctags_Cmd = '/opt/local/bin/ctags'
" add ctag files
if filereadable ( "./tags" )
set tags +=./ tags
endif
" taglist quick key
nnoremap < silent > <F5 > :TlistToggle <CR >


2. 语法高亮和自动补全。VIM对JS/HTML的这方面原生支持不够。自动补全对JS很弱,需要在.vimrc中配置omnifunc

autocmdFileType Javascript setomnifunc=Javascriptcomplete#CompleteJS

补全的快捷键CTRL-X CTRL-O比较好用。


3. JS的lint(静态语法和代码检查), .vimrc配置如下:

 
 
 
  
" Javascriptlint
autocmd FileType Javascript set makeprg = /Users/oliverluan /bin/jsl\ -nologo\ -nofilelisting\ -nosummary\ -nocontext\ - conf\ '/Users/oliverluan/bin/jsl.default.conf'\ -process\ %
"autocmd FileType Javascript set errorformat=%f(%l): %m
autocmd FileType Javascript inoremap < silent > <F9 > <C -O >: make <CR >
autocmd FileType Javascript map < silent > <F9 > : make <CR >

4. HTML代码自动补全,用emmet插件。


5. JAVA代码编写,tab一般要求必须替换为空格,缩进应为4。

 
 
" tab settings
set expandtab
set tabstop = 4
set shiftwidth = 4
set softtabstop = 4


6. 不能没有的插件:

MRU: 文件历史

taglist: 顾名思义


以下给出一份完整.vimrc

" syntax highlight
filetype plugin indent on
syntax on

" search etc
set hlsearch
set incsearch
set ruler

" tab settings
set expandtab
set tabstop=4
set shift file history
noremap :MRU

" Javascript auto completion
autocmd FileType Javascript set omnifunc=Javascriptcomplete#CompleteJS
let b:Javascript_fold=1
let Javascript_enable_domhtmlcss=1
let g:tlist_Javascript_settings = 'Javascript;s:string;a:array;o:object;f:function;m:member'

" use exuberant ctags tool instead of Mac ctags
let Tlist_Ctags_Cmd = '/opt/local/bin/ctags'

" add ctag files
if filereadable("./tags")
set tags+=./tags
endif

" taglist quick key
nnoremap :TlistToggle

" Javascriptlint
autocmd FileType Javascript set makeprg=/Users/oliverluan/bin/jsl\ -nologo\ -nofilelisting\ -nosummary\ -nocontext\ -conf\ '/Users/oliverluan/bin/jsl.default.conf'\ -process\ %
"autocmd FileType Javascript set errorformat=%f(%l): %m
autocmd FileType Javascript inoremap :make
autocmd FileType Javascript map :make

" folding
"set foldmethod=indent "set default foldmethod
"set foldlevel=8

" emmet for html
let g:user_emmet_settings = {
\ 'indentation' : ' ',
\ 'perl' : {
\ 'aliases' : {
\ 'req' : 'require '
\ },
\ 'snippets' : {
\ 'use' : "use strict\nuse warnings\n\n",
\ 'warn' : "warn \"|\";",
\ }
\ }
\}

let g:user_emmet_expandabbr_key = ''
"let g:user_emmet_expandabbr_key = ''
let g:use_emmet_complete_tag = 1

" netrw configs
let g:netrw_altv = 1
let g:netrw_liststyle = 3
let g:netrw_preview = 1
let g:netrw_winsize = 30



推荐阅读
  • 十一、构建我们自己的包在本章中,我们将学习如何构建自己的包。编写包可以让我们创建可以在许多应用 ... [详细]
  • Linux提权之suid篇
    Linux提权之suid篇不知攻,焉知防一个在安服路上摸索的大三生,记录平时学习笔记suid前言:1.只有可以执行的二进制程序文件才 ... [详细]
  • 下载完成之后解压提取jl1.0.0.1.jar这里写图片描述将jl1.0.0.1.jar拷贝到项目中,并添加到Library这里写图片描述4.源代码Tip:由于工程名 ... [详细]
  • socket.io是个基于node.js的快平台实时通讯框架。只用不到10行代码,就可以搭建一个简单的多人实时聊天室。先来看看运行后的效果:socket.io多人聊天室只要简单几 ... [详细]
  • packagetest;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOE ... [详细]
  • mysql oneproxy稳定吗_Mysql 中间件 oneProxy总结
    建议使用之前把官方的文档全部通读一遍这里提供一个我的网盘地址oneproxy百度网盘0.先对oneproxy有个大概的了解,知道他所处的位置1.MySQL服务器创建t ... [详细]
  • MQ的使用
    安装环境:linuxredhatactivemq版本:5.8.01.从http:activemq.apache.orgdownload.html地址下载 ... [详细]
  • 一、域名解析记录说明记录类型A:用来指定域名的IPv4地址(如:8.8.8.8),如果需要将域名指向一个IP ... [详细]
  • 本文整理了Java中com.atlassian.scheduler.config.JobConfig类的一些代码示例,展示了JobConfig ... [详细]
  • 每次用到v-charts我都一阵头疼,因为明明是相同的功能,但是我好像每次用到的解决方法都不一样??每次都是在api中各种查,各种尝试…直到做了个各种数据图形的需求,决定还是好好整 ... [详细]
  • CSS3圆角技术能非常好的美化你的页面效果,而且避免了使用图片辅助,一则省去了制作图片的时间,二则省去了浏览器加载图片造成的延迟和带宽。如 ... [详细]
  • 关键词:LinuxJDKJRE解决JRE中文乱码解决FireFox不支持appletl 安装JDK1、  安装jdkroot用户进入jdk安装文件所在目录,键入chmoda+xjd ... [详细]
  • 配 ... [详细]
  • 【scrapy】爬取汽车车型数据
    汽车最近想在工作相关的项目上做技术改进,需要全而准的车型数据,寻寻觅觅而不得,所以就只能自己动手丰衣足食,到网上获(窃)得(取)数据了。汽车之家是大家公认的数据做的比较好的汽车网站 ... [详细]
  • 闲话少说,直接切入主题,之前也是用一下其他的IDE,但是总是在vi和IDE之间来回切换,比较麻烦,于是乎,找了几个插件亲身体验,功能挺不错;1、安装vi7.0vim的官方网站是:www.vmuni ... [详细]
author-avatar
mobiledu2502868653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有