Vimで文字化けファイルを作りテストする

はじめに 今回はVimであえて文字エンコードの違うファイルを作り、開いたら文字化けさせることが目的です。 Vimに限らず最近のエディタでは、一度エンコードを指定してからファイルを編集すると、文字化けさせたいテキストをコピペしてもよしなに変換してしまいます。例えばShift-JISのファイルのテキストをUTF-8のファイルにコピペしても、変換してくれるので文字化けが怒らないなど。 だから今回はVimを使って文字化けファイルを作成する方法をまとめてみました 方法 結論から言うとエンコードを指定してファイルを作成するということです。 UTF-8を真(文字化けしない)として、Shift-JISを偽(文字化けする)とするならば、まずUTF-8でファイルを作成します。 $... 御覧になる | 御シェアする

Vimプラグインを自作して公開する

はじめに 今更ですが、Vimプラグインを作り公開する方法をまとめたいと思います。 以前、こちらで再帰関数で括弧構文を作るVimスクリプトやRubyスクリプトを作りました。 今回はこのスクリプトをVimプラグインにして公開することにします。 準備 まずはソースの管理と公開のためにGitHubにリポジトリを作ります。短く、分かりやすく、被らない名前が推奨されています。https://github.com/momozo2251/vim-rebrackets ディレクトリ構成 リポジトリを見てもらう方が速いかもしれませんが、一応下記の通りになります。 . ├──... 御覧になる | 御シェアする

ddc.vimとvim-lspを使って自動補完機能を設定する

はじめに Vimには標準で自動補完機能が備わっていません。したがって手動でLSPを導入したり、補完候補が表示されるように設定をする必要があります。 今回はvim-lspという非同期LSPを行うVimプラグインと、LSPの設定を簡易にしてくれるvim-lsp-settingsというプラグイン、そして自動補完の設定を行うddc.vimというプラグインを導入していきます。 vim-lspに関しては自動補完以外にも定義ジャンプなど便利な機能もあるようですが、これについては別の機会にまとめようと思います。 Denoインストール ddc.vimがDenoで開発されているらしく、まずはDenoのインストールから行います。 $... 御覧になる | 御シェアする

iTerm2とVim上でSolarizedカラースキーマを利用する

はじめに 最近Macを初期化してしまったので、カラースキーマの設定もし直すことになってしまいました。 とりあえずSolarizedテーマを使っておけば間違いはないと思うので、今回はiTerm2とVimを使用するという前提の下でカラースキーマをSolarizedに設定する方法をまとめてみました。 Vimプラグインをインストール .vimrcに下記を追記して下さい。 Plug... 御覧になる | 御シェアする

Vimでアカウント・パスワードを管理するベストプラクティス

はじめに 複数のシステムのアカパスを管理している場合、どうしてもローカルのテキストファイルなどに管理してしまうかと思います。しかし、この方法はふとした瞬間に困ることがあります。 第一にファイルアクセスまで時間が掛かるということです。ファインダーを立ち上げ該当のテキストファイルまで移動して、クリックしてから確認という工数になります。 第二にうっかり画面共有などで他の人に見られてしまう可能性があることです。皆さんはやらないかと思いますが、自分は気をつけていても結構やってしまいます。説明やペアプロの時などに画面に映してしまい、その度に上司に注意されています。 そこで今回はVimで若干セキュリティを上げつつアカパスを管理する方法を考えてみました。 折り畳みを使う 概要 大抵のIDEや開発向けのエディタには折り畳みという機能があります。ファイルの中の一部分を折り畳むようにして一時的に非表示にする機能のことです。Vimにもfoldingという折り畳み機能があります。 下記はよく使うモーションです。 zf選択部分やカレント行を折り畳むzd折り畳みを削除するzD折り畳みを全て削除するza折り畳みを切り替えるziファイル内の折り畳みを切り替えるzj... 御覧になる | 御シェアする

Vimでブラウジング

はじめに Vimでブラウジング出来るとどんな良いことがあるのか考えてみましょう。仕事している風を装いながらスポーツニュースの速報をチェック出来たり、サクッと天気予報を確認出来たりします。 他にもコーディングをしながら調べものをする際にターミナルからブラウザなどのアプリに切り替えなくて済むようになります。一日に何十回とする面倒な作業が省略されて開発体験も改善されます。 という訳でVimでブラウジングする方法をまとめました。 テキストブラウザ w3mというテキストブラウザを利用します。普段私達が見ているWebページには画像やCSSなどの装飾が埋め込まれています。それらはChromeなどのブラウザによってパースされた後、DOMを構築したりスタイルを適応していき最終的に私達にとって見やすい形で画面に表示されています。 テキストブラウザとはWebページの文字で表現されている部分のみを抽出してターミナルに表示するブラウザのことです。w3mはその内の一つです。 $... 御覧になる | 御シェアする

Vimでファイル名をクリップボードにコピーするコマンド

ファイル名を手で入力している人 私です。 普段コーディングをしている時、モジュール化したファイルを読み込むためにそのファイル名を記述する事があるかと思います。「いい方法があるんだろうなー」と思いつつも、ついファイル名を素手で入力してしまいます。 しかしVimmerたるもの常に効率化のことを考えなくてはならないので、ファイル名を一々入力している方は断固改善すべきです。今回はファイル名をクリップボード及び無名レジスタにコピーするExコマンドを作りたいと思います。 ファイル名レジスタ Vimには読み取り専用のファイル名レジスタという特殊なレジスタがあります。これにはカレントバッファのファイル名が格納されています。 また様々な修飾子がありこれらを活用することでファイル名だけでなく、フルパスや相対パスも取得することが可能です。 ※下記のVim... 御覧になる | 御シェアする

レジスタをfzfで参照するVim scriptを書いた

レジスタについて レジスタはヤンクや削除を行った際に対象の文字列を保存しておく領域のことを指します。細かい説明は省きますが、デフォルトで保存される「無名レジスタ」や直近の削除したものがスタックされていく「番号付きレジスタ」、クリップボードと連携される「クリップボードレジスタ」など色々なレジスタが存在します。 :registersか:regのExコマンドでレジスタの一覧を表示することが出来ます。またヤンクやペーストをする際に各レジスタを指定することで狙ったレジスタに保存したり、ペーストすることが出来るのです。 fzfで参照したい 一見便利そうなレジスタですが種類が多過ぎてどこに何を保存しているのか分からなくなることがあります。という訳でfzfと組み合わせてレジスタを曖昧検索で参照して貼り付け出来るようにしたいと思います。 fzfが何か分からない方はこちらをご覧下さい。 最終的に下図の様なものになります。 ※この後作成するコマンドを実行するとレジスタの検索窓が表示されて選択すると貼付けされるイメージ Vim... 御覧になる | 御シェアする