Viewで変更を取り消すときはuではなく!を使います。filesの変更を取り消す場合はDを使います。filesの変更を取り消しコマンドDはtig本体の機能ではなく.tigrcのオリジナル設定です。filesの変更を取り消し機能がないのかはこちらのIssueが参考になります。fzfで高速な単語検索とファイル検索を実現しようfzfを使えばカレントディレクトリから高速でファイルや単語をあいまい検索することができます。fzf.vimにはファイルの編集履歴から簡単にファイルを開くことができる機能もあります。fzfの高速で強力な検索機能を使ってVimをもっと使いやすくしましょうこの章の続きを読むまずはfzfをVimで使えるように設定しましょう。ripgrepをインストールripgrepはgrepやAgより高速な検索ツールです。Vim用のプラグインをインストールdein.tomlに以下の設定を追加してください。:History<CR>'''以上でfzfの曖昧検索がVimで使えるようになりました次に具体的な使い方をご紹介します。.で開き、作業していたとします。ファイルを検索したい時は<C-p>(コントロール押しながらp)を押します。すると以下のようにQuickfixでファイルのあいまい検索ができます。TABか前の章で紹介したEmacsのキーバインドを使います。ちなみになぜpをバインドしているかというと以前にctrlp.vimというプラグインを使っていた名残です。実は<C-p>には:GFilesをバインドしているためGit管理下のファイルしか検索できません。ほとんどの場合は:GFilesで問題ないのですが、未だGitでtrackingしていないファイルを検索したい場合はコマンドモードで:Filesを実行してください。するとGit管理していないファイルも検索することができます。コマンドを打つのが面倒な方はキーバインドを設定しても良いかもしれません。バッファの編集履歴からファイルを開くさっきまで開いていたファイルをもう一度開きたいということは良くあります。そんな時は<C-h>を使うとバッファの編集履歴(≒ファイルの編集履歴)からファイルを開くことができます。hは:Historyのhで覚えやすいと思います。(ちなみに簡単なファイルバックの場合はVimデフォルトの<C-o>でも可能です。.で開き、作業していたとします。カレントディレクトリ以下のfzfという単語を検索したくなった時は<C-g>を押して、引数に検索したい単語を渡します。すると上のGIFのようにカレントディレクトリ以下の単語を検索することができます。ちなみに、?を押すとカーソルで選択中のファイルの中身を見ることができます。以上がfzfの簡単な使い方です。ここで紹介した検索以外にもfzf.vimには様々な検索方法があります。詳しくはコマンド一覧をご覧ください。私の友人はfzfがあればNERDTREEやタブなんて要らないと言っていましたが本当にそうだと思います。Server(言語サーバー)との通信(LSP)をサポートするプラグインを追加すれば、非常に強力で便利な言語サーバーの恩恵を受けることができます。言語サーバーの恩恵によって実現できる機能には以下のようなものが挙げられます。Protocol(LSP)をサポートしているVimのプラグイン「coc.nvim」の導入手順と基本的な使い方を紹介します。Protocol)について簡単に説明します。言語サーバーはエディターとは別のプロセスで独立して立ち上がります。エディターから言語サーバーに対してリクエストが送られると、言語サーバーはそれに応じたレスポンスを返します。Protocol)です。決まった通信プロトコルを利用する言語サーバーを用意しておけば、クライアント(エディター側)は言語サーバーとのやりとりだけで仕様の異なる言語ごとの機能を実装できるようになります。エディターは言語ごとの実装を言語サーバーに任せられてハッピー!というわけです言語サーバーとLSPについてはマイクロソフトの以下のページが参考になります。プロトコル次にLSPをサポートしているプラグイン「coc.nvim」をインストールしましょう。extensions(拡張機能)として提供しています。拡張機能名と実行することでインストールすることができます。拡張機能の本体は~/.config/coc/extensionsにインストールされます。coc-emojiとコマンドを実行します。インストール完了後、マークダウンファイルで:を打つとたくさんの絵文字が補完で表示されるようになりました。他にもcoc.nvimには様々な拡張機能が提供されているので、拡張機能一覧から欲しいものを見つけてインストールしましょう続いてcoc.nvimで言語サーバーの恩恵を受けてみましょう。coc.nvimはLSPクライアントであるため、言語サーバーは別で用意する必要があります。言語サーバーはcoc.nvimの拡張機能として提供されているものと各自でインストールする必要があるものに分けられます。拡張機能が存在する場合は拡張機能を利用するのが良いでしょう。coc-tsserverを実行するだけで言語サーバーを用意することができます。言語サーバーが拡張機能として提供されていない場合は、言語サーバーをインストールした後に~/.vim/coc-settings.jsonに以下のように設定を追記します。}言語サーバー一覧とcoc-settings.jsonの記述例はこちらから確認できます。警告やインフォメーションの表示といった便利な機能が利用できるようになります例えばTypeScriptの場合。コードジャンプ関数や変数、型の定義元へオリジナルのキーバインドgdで簡単にジャンプすることができます。ちなみにジャンプ元のファイルへ戻るには<C-o>が便利です。入力補完<tab>またはEmacsキーバインドで候補を選択します。警告やインフォメーションの表示こちらの例ではReactコンポーネントの引数の型が違うよ!とエラーを警告してくれました。このように言語サーバーのパワーは非常に強力ですcoc.nvimで言語サーバーの恩恵を受けてVimを最強の開発環境にしましょう!ちなみにcoc.nvimにはfzfライクなあいまい検索を実現する拡張機能などもあります。Vimは楽しい!この記事では私がVimをそこそこ使えるようになるまでに行った設定とその手順を紹介してみました。ここで紹介したこと以外にもターミナル、tmux、Vimのカラースキームを統一する、高速なターミナルエミュレーターを導入するなどVimをもっと使いやすくする方法を考えると楽しいはずです。(わたしの使っているカラースキームはatom-one-dark-terminal、onedark.vimです。おすすめのターミナルエミュレーターはalacrittyです。)Vimを使い始めてもうすぐ1ヶ月が経ちますが、今でも私のdotfilesはスクスクと成長中です。1ヶ月後にこの記事を読むとリライトしたくなる箇所がたくさんあるんだろうなと思っていますしかし、Vimが楽しいことはこれからも変わらない気がしています。Vimの不満点が1つずつ消える度に「あ〜、、Vim最高!!」ってなるのすごいな。scriptでも書けたらもっと楽しくなりそう。沼にハマってしまったようだ。2019今後もVimライフを楽しみましょう最後に筆者の最新設定(dotfiles)を貼っておきます。追記)思ったより多くの方にこの記事を読んで頂けているようです。ありがとうございます記事中の設定に改善点を発見した場合はできるだけ更新していますが、もしエラーが出ることがあれば変更リクエストまたはコメントでお知らせ頂けますと幸いです。何もワカンないけど、楽しんでいます:smile:Follow株式会社ディー・エヌ・エー1999年に創業した株式会社ディー・エヌ・エーはゲームを中心に、オートモーティブ、ヘルスケア、スポーツなどの事業分野にも進出し、インターネットや人工知能(AI)を活用した新しい挑戦を続けています。upLoginユーザーは見つかりませんでした。