-
Notifications
You must be signed in to change notification settings - Fork 84
vimshell ToDo
・グロブがマッチしない場合、zshのように、現在エラーになる。Bashのように空にするべき?
・1 vimshellというバッファにbcdしようとして補完候補を出すと候補がおかしい。
abbrとmenuで切れてしまっているようだ。
・構文解析パーザを書き直し。Lexical analyzerとparserを書いて、分離して……。というVimScriptでは考えられないことをやらないといけないかも。
特に、パイプやgaliasが絡むと問題になる。Ver.7.00で抜本的な修正予定。
・変数名を変更する。Ver.7.00予定。今までと互換性が無くなるので注意。
・コマンドのインテリジェントな補完システム。
内部コマンドの補完は自分で作らないと。外部コマンドは候補を自動生成したいところ。
・zshのzptyのように、端末入出力を自動化する内部コマンドの追加。
どうせ似たようなことをやっている。
・zargsを移植? 拡張ブログの内容をファイルに書き出し、xargsに渡す。
・履歴に登録しないコマンドパターンを定義するオプションの追加
g:VimShell_IgnoreHistoryPattern
・<C-w>, はプロンプトを削除しないように置き換える。
・ENV=value cmdの実装。
(local ENV=value; cmd)というようなコマンドが解釈できると良いな。
・`=$hoge`とすると、変数を置換してからevalするように。
・’や"は行をまたいでも認識するように。
vexe ‘vim script’を実装したい。制御構文が無くても、Vim Scriptの制御構文を使える。
・制御構文の実装。多分一番難しい。
・time内部コマンド コマンドの実行時間を計測する。
reltime()を使って実装。コマンド列を評価せずに一つにまとめる構文が欲しい。
・cat, more(less)内部コマンドの実装。内部コマンドも標準入力を解釈する。
・hoge && fugaはfishみたいにhoge; and fugaとしたい。
・topのようにコマンドを実行するtoplessを移植。
・ドキュメントの充実
実はここが一番重要だったり。自分が気の向くままに実装した内部コマンドの数々は、
さすがにマニュアル書かないと気付いてもらえないこと間違いなし。
作者でさえ、時々仕様を忘れます。
→一応内部コマンドの仕様は書いた。
あとは、altercmdやhookについても書かないと。
presen/vimshell.mkdに書いてある文章はdoc/vimshell.jaxに移植する。
・実行ファイル名補完は カレントディレクトリ or $PATH中にある実行ファイルを補完する。
じゃないと、iexe ./scala.batが補完できなくて困る。
・エスケープシーケンスの処理をもう少しまともにする。
ひな形はできているので……。目指せslが走るレベル。
・lnkに対してcdくらいはできないとだめ?
・エスケープシーケンスの解釈において、画面をクリアするときは
ハイライトもクリアしないといけないと思った。
・winline()を使えばウインドウトップからの相対位置が分かるので、カーソル移動もできる?
・vimshell Ver.7.00はvimproc必須にする。
・非同期補完の挙動がおかしいのでどうにかしたいところ。
・echo -nに対応させる。
・リダイレクトは:redirを使って実装する。
・interactive起動したコマンドもフックできるようにする。
hook_pointは’interactive_precmd’とか。
同様に、エイリアスが指定できるとうれしい。
autocmdで指定しないといけない。vimshellもエイリアスをcall vimshell#set_alias()で指定できるようにする?