私はほとんどHabrahabrで書いていないことが判明しました-これには理由があります。 しかし、vimでJavaScriptを使用するすべての人に確実に役立つ1つのことを共有したいだけでなく、Habrahabrにはそのような資料が見つかりませんでした。
これは奇妙に思えるかもしれませんが、vimでの作業は本当に
便利です (特にコンソールで-guiから解けているので、sshを静かに操作できますが、guiでも同じことができます)。 この点で、素晴らしいvimスクリーンキャストの作者である
Derek Wyattに完全に同意します。 確かに、vimは少し慣れている必要があるため(多少慣れる必要があるため)、vimが少し異なるエディターであることに気付いた後に便利になることは注目に値します。 カスタマイズについて説明します。
多くのプログラムを作成し、専門的にコードの品質がエラーの数に影響することを知っています(当然、これが唯一の要因ではありません)。 また、彼らは多くの場合、プログラマーが自分自身や他の人のコードで疑わしい、潜在的に危険なコンストラクトや単なる構文エラーをチェックするのに役立つlintツール(Stephen Johnsonによって書かれたlintプログラムで始まる)の存在を認識しています。 また、PHPのリントモードを簡単にオンにできる場合は、2行(〜Andrey Zmievsky
による スライドと
ファイル )を
~/.vim/ftplugin/php.vim
に追加するだけです。
set makeprg=php\ -l\ %
set errorformat=%m\ in\ %f\ on\ line\ %l
使用:make to test、次にJavaScriptをテストするには、もう少し努力する必要があります。これについては、後で説明します。
JavaScriptには、jsコードをチェックするためのオンラインツール
JSLintがあります。 私たちのタスクは、オフラインで起動することです。
これには、オペレーティングシステムと利用可能なプログラムに応じて、
- しばらく
- 当然、 VIM自体
- JSLintソース
- JavaScriptエンジンの1つは、 SpiderMonkey 、 Rhino 、またはその他のエンジンです。 OSXの所有者は少し幸運でした-JavaScriptCore(Webkitのエンジン)をすぐに使用できます。
vimがあり、JavaScriptエンジンがすでにインストールされているとしましょう(インストールについて質問がある場合は、コメントで質問するのが最善です)。 また、WSH Command LineとRhinoの状況を個別に明確にすることも価値があります。それらには、それぞれ
www.jslint.com/wsh/index.htmlと
www.jslint.com/rhino/index.htmlという特別なバージョンがあります。 SpiderMonkey / JavaScriptCoreでJSLintを実行する方法について説明します。
目標を達成するには、
~/.vim/ftplugin/javascript.vim
を編集し、そのような行をそこに追加する必要があります
if filereadable( 'PATH_TO_JS_ENGINE' )
set makeprg=PATH_TO_JS_ENGINE\ ~/.vim/jslint_runner.js\ <\ %:p
set errorformat=Line\ %l\ column\ %c:\ %m
endif
PATH_TO_JS_ENGINEはjsエンジンへのパスです(macの場合は
/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jscで 、SpiderMonkeyをインストールした場合は
デフォルトで/ usr / local / spidermonkey / bin / jsです ) 。
その後、fulljslint.jsの最後に次のコードを追加します
var body = [], line, num_empty_lines = 0; // .. js- , // , // , 50 while ( 50 > num_empty_lines ) { line = readline(); body.push( line ); if ( 0 === line.length ) { // blank line, so increment num_empty_lines += 1; } else { // not blank, so reset num_empty_lines = 0; } } body.splice( -num_empty_lines ); body = body.join( "\n" ); // «Good Part», whitespace options = { bitwise : true, // if bitwise operators should not be allowed eqeqeq : true, // if === should be required glovar : true, // if HTML fragments should be allowed regexp : true, // if the . should not be allowed in regexp literals undef : false, // if variables should be declared before used onevar : true, // if only one var statement per function should be allowed. newcap : true, // if Initial Caps must be used with constructor functions immed : true, // if immediate function invocations must be wrapped in parens plusplus : true, // if increment/decrement should not be allowed nomen : true // if names should be checked }; // , // js- /*jslint onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, strict: true, newcap: true, immed: true */ var result = JSLINT( body, options ); if ( !result ) { for ( i = 0; i < JSLINT.errors.length; i+=1 ) { var err = JSLINT.errors[i]; print( 'Line ' + err.line + ' column ' + err.character + ': ' + err.reason ); } } else { print( 'No errors found' ); }
結果のファイルを
~/.vim/jslint_runner.js
として保存します。
最後のコードは私の個人的なものではなく、インターネットで見つけて少し編集しただけです。
~/.vim/ftplugin/javascript.vim
と
~/.vim/jslint_runner.js
を読み込んだ後、次の
~/.vim/jslint_runner.js
を実行する必要があります
:so ~/.vim/ftplugin/javascript.vim
~/.vim/jslint_runner.js
:so ~/.vim/ftplugin/javascript.vim
または単にvimを再起動します。 その後、安全に
:make
実行できます。エラーがある場合は、
:cn
および
:cp
(
:h quickfix
)でエラーをナビゲートします。
また、vimのプラグイン(
例 )とこのタスクの他の議論(
例 )があることも知っています。 あなたがこの主題に関して有用な何かを知っているなら-コメントへようこそ、私は感謝します。
追伸 WSH以外にもWindowsにはいくつかの違いがあります。vimのホームフォルダーは別の場所にあり、.vimrcはvimrcに変わります。
pps この記事はvimを使用して作成されています。