無標題文檔

jsLint for Vim

我们在编写 Javascript 时,Debug 是很痛苦的过程,而且有些语法问题虽使用 Firebug 能很快定位,但毕竟影响效率。

这里有个 Vim 插件,能使用 jsLint 帮助检查 Javascript 脚本中常见的语法错误,所以这篇文章可以帮助延长 F5 的寿命。

https://friable.rocks/_/2009_11_05/394547197918.jpg

首先, 下载 jsLint ,解压缩到某个目录,然后将这个目录加入到 PATH 环境变量中。然后, 下载 Vim 的 jsLint 插件 ,将它扔到 Vim 的 plugin 目录中即可。

当保存编辑好的 Javascript 文件时,插件就会调用 jsLint 检查文件是否存在语法错误。当然可以配置相应的配置选项(更多的选项可以参考其 Vim 插件脚本内容),例如

" 指定 jsLint 调用路径,通常不用更改
let g:jslint_command = 'jsl'
" 指定 jsLint 的启动参数,可以指定相应的配置文件
let g:jslint_command_options = '-nofilelisting -nocontext -nosummary -nologo -process'
" 插件的主要调用方式
autocmd BufWritePost,FileWritePost *.js call JsonLint()

其实核心函数是 JsonLint() ,所以可以绑定快捷键,用于在任何时候检查错误。例如

map <C-s><C-j> :call JsonLint()<cr>

这样同时按 Ctrl + SCtrl + J 就可以检查 Javascript 语法有无问题了。

-- 更新 --

发现个不大不小的问题。就是在 Windows 环境中如果 Vim 本身设置了 utf-8 编码,由于与控制台编码不一致(控制台为 gbk 编码)造成 Javascript 文件在中文目录下不能正确启动 jsLint。

这里有个不完全的解决方案,更改对应的代码(从 34 行开始,加入判断)

  let jsl_command = g:jslint_command . ' ' . g:jslint_command_options . ' ' . current_file

  if has("win32") && v:lang == 'zh_CN.utf-8'
    let jsl_command = iconv(jsl_command, 'utf-8', 'gbk')
  endif

  let cmd_output = system(jsl_command)
  
  if has("win32") && v:lang == 'zh_CN.utf-8'
    let cmd_output = iconv(cmd_output, 'gbk', 'utf-8')
  endif

如果自行修改觉得麻烦, 就用我的修改后的插件吧

Windows 下 gVim 的雅黑字体配置

编辑器的字体有时候能影响我们编码的效率,下面主要说明 Windows 下 gVim 的字体配置过程。由于微软的雅黑字体非常的常见而且效果也不错,所以就以它为例。

首先我们要更新 gVim 程序, 这里已经有个现成的编译版本 ,并且有详细的雅黑字体配置步骤。不过我个人更喜欢使用 苹果的 Courier_New 字体

下面是中文字体使用雅黑,而英文字体使用 Courier_New 的效果图

https://friable.rocks/_/2008_10_07/1223378378.jpg

需要的软件有上述提到的二次编译版本的 gVim ,以及相应的字体( Courier_New 下载雅黑 Consolas 下载 )。安装好上述两种字体以后,配置 gVim 的字体(针对 Windows 系统)

if has("win32")
    set guifont=Courier_New:h10:cANSI
    set guifontwide=YaHei\ Consolas\ Hybrid:h10
endif

这里可以 查看 gVim 下配置 Windows 的详细信息 。最后,本人历次保存的 Vim 配置文件, 可以在这里获得

快速从模板建立文件

最近很多人被我「拉下水」尝试 (g)Vim ,为了支持他们,我会编写些 Vim 脚本方便大家。

这里有个现成的需求,就是很多从 Editplus 转过来的同学,想让 Vim 有从模板新建文件的功能。那么,这篇文章可能就是你们想要的。

安装步骤

下载代码包 以后,解压缩到 $VIMRUNTIME 目录。重新启动 Vim,输入

:NewTemplate xhtml

就可以建立个 XHTML 模板,如果是 Vim 7.0 以上的版本,还有个命令

:NewTemplateTab xhtml

即可在新的标签页中新建文件。当然可以映射快捷键,快速新建常用的文件类型,比如我的

" 新建 XHTML 的快捷键
map nn :NewTemplateTab xhtml<cr>

在 normal 模式下,连续按两次 n 就可以在新标签页建立 xhtml 文件了。

配置脚本

此插件文件的路径在

$VIMRUNTIME/plugin/Template.vim

下,主要有两个配置选项,默认为

let g:TemplatePath=$VIM.'/vimfiles/template/'
let g:TemplateCursorFlag='#cursor#'

其中,g:TemplatePath 为模板路径,而 g:TemplatePathCursorFlag 则为新建模板以后鼠标移动到的位置(如无指定,则移动到文件底部)。

增加模板

脚本支持用户新建模板,找到 g:TemplatePath 中的 xhtml.tpl 目录。参考其中的内容

<html>
...
    <body>
        #cursor#
    </body>
</html>

应该很容易理解。比如需要新建 python 模板。则在 g:TemplatePath 中建立 python.tpl 并加入 #cursor# 的位置即可。

目前的 Vim 配置以及常用的插件

https://friable.rocks/_/2009_11_05/280385ac85db.jpg

首先说明下,我的配置文件并不是适合每个人。这是个合集包,除了本人的 vimrc 配置文件以外,还包含了本人经常使用的一些插件,比如 NERDTreeCalendar 等等。

安装的方法很简单,解压缩以后将 vim 文件夹放置到 $HOME/.vim 或者 $VIM/vimfiles 中即可。废话不多说,在这里 打包下载

MacOS 下安装 Vim 小结

谁知道我怎么想的,我总是尝试在不同的系统下,安装我喜欢的(或者说习惯)的软件。由于 新到手台 iBook G4 ,我尝试将 Vim 安装在此平台下(注,此 Vim 和「控制台」下的不同,更准确的说是「gvim」)。

下面,简单的说下我的安装经验。

由于没有安装 GCC,以及其他的开发库(坦白说,还是不怎么熟悉 MacOS),所以我还是决定二进制安装。追寻 Vim 官方站点的链接,我来到 MacVim 的主页

作者更新还真懒,到现在还是 7.0 版本。似乎 在 GoogleCode 也有个同名的项目 ,不知道和其是否有丝毫的关系。废话不多说,下载之。

解压缩以后,直接将 Vim 的图标拉到「应用程序」中即可完成安装。可怜这个时候启动 Vim 真是惨不忍睹,菜单和文字都「傻眼」了。使用

:version

查看编译进去了什么东西,好在作者将多字节支持编译进去了(否则我这个时候就放弃了)。看来,乱码以及字体太小是配置的问题。

由于 7.1 和 7.0 主要的不同就是修改了诸多的 BUG,以及添加了很多的 RUNTIME。那我就不管三七二十一,将官方下载的源代码包中的 runtime 目录直接覆盖对应的文件。

比如我的机子的对应目录是

/Applications/Vim.app/Contents/Resources/vim/runtime/

如果不了解 runtime 目录在哪里,可以输入

:echo $VIMRUNTIME

获得。文件覆盖以后如果不出意外,重新启动 Vim 以后就可以看见中文菜单了。

然后是字体和颜色方面的配置,经过摸索,直接在 ~/.vimrc 中设置

set guifont=Courier_New:h16
set guifontwide=STXihei:h16

这是我比较满意的字体配置,中文使用黑体,英文使用我 之前说的 Courier 字体 ,大小是 16px(最近流行大字体)。

有关配色方面,我现在改成了 evening 。不知道怎么搞的,这个版本的 Vim 好多颜色常量都不支持,反正也换下口味,这个先不折腾了。

https://friable.rocks/_/2009_11_05/8766659649b2.jpg

OK,现在 Show 下我的 Vim,看起来不错。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQGdyYWNlY29kZS5jb20K | base64 -d`

文章

项目