よしなしブログよしなしブログ趣味の音楽とMacとかのサイト。コメントするみなさん初めまして、skrby1です。この記事はMacでVimを使っている人向けの記事です。はじめにみなさんVim使ってますか?自分はここ1年ぐらいでVimを使い始めて、色々と便利さを実感している所です。通好みのプラグインだと個人的には思っているのですが、みなさんは使用しているでしょうか?使い方それではvim-operator-perlの使い方のご紹介です。インストール自分はまだNeoBundleを使用していますので、それ前提で話をさせて頂きます。kanaさん作のvim-operator-userをインストールします。"kana/vim-operator-user"その次に自作のvim-operator-perlをインストールします。"skrby1/vim-operator-perl"でOKです。その後.vimrcに自分のやりやすいキーマップを指定します。<Plug>(operator-perl)と指定しています。簡単に言うと、シェルでのPerlの操作をそのままVim上で行う感じです。Perlのワンライナー(わからない方はググってみて下さい)だと思って頂けたら幸いです。_)m先ほど指定したキーマップを押します。テキストオブジェクトを指定します。(これはビジュアル選択後に指定したキーマップを押す事でも可能です)するとコマンドラインに次のような表示が出ます。ここでまずはPerlに渡すオプションを選択します。([-pe]と入力されていますが、今はそのまま決定でお願いします)次に本体部分が出ます。ここにPerlでやりたい処理を入力します。最後にPerlのARGVに何か渡すものがあれば入力します。何もなければ、そのままリターンでOKです。すると指定したテキストオブジェクトをPerlで処理して、Vim上で変更してくれます。Perlの内部でエラーの場合は今の所そのままエラーが出力されるようになっています。これは今後エラー処理をした方がいいか、逆にこのままの方がいいか悩んでいる所です。Perl内部のエラーが出力された場合はVimの内部で[u]キーでUndoできますので、一旦戻して下さい。応用的な使い方なぜ基本的な使い方で入力するものが3つも必要なのか?と訝しげに思った方もおられるかもしれません。これはPerlのワンライナーでできる事はなんでもここからできる様にしたかったからであります。簡単に言うと、自分でPerlスクリプトを自作して、それをVim上のテキストに適用する事もできます!Perlはテキスト処理言語として優秀なので、Perlでできる事は多分ほとんどこのプラグインでVim上でできるという訳です。それなら[:perldo]や[:perl]で充分じゃないか?と思う方もいらっしゃるとは思いますが、[:perldo]では適用範囲が1行単位でしか行えないので、自分はこれを自作した次第です。応用編として、ちょっとした遊びに使える、vim-operator-perl専用のライブラリみたいなものを用意させて頂いております。それを使用してみたいと思います。基本的な使い方同様に指定したキーマップを押します。基本的な使い方同様にテキストを選択します。(これも基本的な使い方同様ビジュアル選択した後でキーマップを押しても可能です)ここで、最初に入力されている[-pe]のオプションを削除してリターンを押します。ここで、Tabキーを押します。すると、ファイルの候補が表示されます。そこで、ファイル名を選んで、リターンを押します。それぞれの機能のご説明です。dict.plLPWモジュールを使用して、ネットから選択した単語の意味を拾ってきて表示します。文章だとGoogle翻訳をブラウザで起動します。お使いのperlにLWPモジュールがインストールされている事が前提です。eval.plVim上に書かれているPerlスクリプトをperl内部でevalします。ARGVでそれぞれの出力位置を指定します。-2(改行して前に出力)-1(改行せずに前に出力)0もしくはARGV無し(選択したテキストと入れ替え)1(改行せずに後ろに出力)2(改行して後ろに出力)です。error=と出力されます。now.pl現在時刻を取得して、選択されたテキストの前や後ろに配置します。ARGVでそれぞれの出力位置を指定します。-2(改行して前に出力)-1(改行せずに前に出力)0もしくはARGV無し(選択したテキストと入れ替え)1(改行せずに後ろに出力)2(改行して後ろに出力)です。rpt.pl選択したテキストの文字をARGVで指定した回数分繰り返します。ARGVの2つ目があると(テキストでも数値でもなんでもいいです)、1つ目のARGVの回数を最大としたランダムな回数分文字を繰り返します。sfl.pl選択したテキストの文字をシャッフルします。このファイル達はNeoBundleを使用していれば、./vim/bundle/vim-operator-perl/lib/以下に入っているので、ご自由に改良してお使い下さい。/lib/以下に自作のスクリプトを入れておけば、Tabでファイル名が補完されるようになっています。面白いor便利な機能のスクリプトを思いついたら、ぜひ自作して試してみてください!もしよかったら自分にも作ったもの分けて頂けたらと思います。(^_^;A制限などこのプラグインの機能は、シェルからPerlをキックすることで実現していますので、Mac専用となっています。コメントをキャンセルメールアドレスが公開されることはありません。themehit.com。