まえがき
†大学生†たるもの、TeXでレポートを書くなり何かしらのプログラミングをするなりと、
なにかとPC上で文字を書く機会が多いものです。
このPC上で文字を書く際に使うソフトウェアとして何をお使いでしょうか。
Google Docs、メモ帳、Word、Visual Studio Code等々有名で使いやすいものがたくさんありますが、テキストを編集するソフトとしてはどれも適切ではありません。
では今後の大学生活で使うべきテキスト編集ソフトは何なのでしょうか。
この記事を読み終えた頃には、†テキスト編集†の真髄を完全理解し、その道を目指すでしょう。
テキストエディターとは
まず†テキストエディター†とは何かを知らなければ、今後のお話がぶれちゃうので簡単に紹介しておきやす。
かな~り語弊のある言い方をするとファイルに文字を入力でき、編集できるソフトウェアの事です。
つまりWord?知らない子ですねぇという事です。
Word君はファイルに文字を入力するのではなく、Wordを介してファイルにXMLを書き込むからです。
次にメモ帳、これはファイルに文字を入力できますが、編集となるとちょいと厳しいです。
テキストエディターよりテキストインサーターを名乗る方がしっくりくるかもしれません。
Visual Studio Codeも同じようなもんですな。
では†テキストエディター†とは何か、それに値するソフトウェアとは何か、それをお伝えしましょう。
それは…†Vim†です。
Vimの思想
Vimと聞いて調べたりすると、学習曲線が歪だぁ~とか、古いぜw等々の声があったりします。
それらは嘘ではないですが、Vimの思想を理解すれば、その恩恵は余りあるほどで、そういった声は畑に生える雑草のように感じるでしょう。
ちなみにですが、本記事ではVimの詳細な使い方等はあまり触れません。
Vimの使い方は千差万別ですし、Vimを初見で触るという神聖な行為をやっつけ記事たる本記事で汚したくないからです。
あくまでVimを使おうかなぁ~どうしようかなぁ~|ω・)チラ
としてる方の背中を微力ながらエイヤッと押す記事としてお楽しみください。
モードという概念
まずVimの特徴として、モードという概念があります。
初見でとっつき辛い要素として真っ先に挙がっちゃう要素でもありますな。
ただこの概念をテキストエディタに導入する事で、キーボードだけでの操作をより快適に、そして、より効率的に編集を行えるようになります。
ふわっとしたイメージとしては、普段マウスを触ってマウスカーソルを移動させたり右クリックをする作業、そして、キーボードを使ってする作業をそれぞれモードとして分類し、キーボードのみで作業を完結させるという感じです。
このモードに慣れる必要があるのが学習曲線の歪性の原因でもあるかもですね。
ただこれも使ってくうちに空気みたく感じられるので、気にやむ事はないです。
今まで経験の無かった動画編集やモデリングソフトを使う際にも、まずは慣れるという感じですよね。
今まで慣れ親しんだテキスト編集に対し、モードという新しい概念を導入したからとっつき辛いのであって、新しい概念のソフトを使い初めると思えばそこまで壁の圧も感じないでしょう。
コマンドと繰り返し
Vimはその成り立ちからか、コマンドとその繰り返しを重視している印象があります。
Unix?Linux系で使いやすいのもそのためかもしれません。
このコマンドってのがミソでしてですねぇ、テキストの編集操作それ自体がコマンドと化すんですよ。
テキストの編集操作を様々な単位で保持して、様々な対象に対してそれを適用できた時の喜びといったらないですね。
ちょっと面倒だなぁ~て作業をシェルのワンライナーでしゅっと処理できた時以上の喜びがあったりします。
より具体的な操作等は以前わたくしが書きました記事があるので、そちらを参照する事でお茶を濁しやす。
https://zenn.dev/trap/articles/5a76bf9af20875
ちなむと本記事も参照元の記事もどちらもVimで原稿を書いてます。
Vimを使い初める事でこういうアウトプットも生まれちゃうなんて…
凄すぎますね
他にもいっぱい
上記までで、己が思うVimの思想のうち一番大きいであろう†テキストエディター†としての思想を紹介しました。
この思想はVim本体だけでなく、他環境でのVimエミュレータ等でもだいたい使えたりします。
細かい使い方ではなく思想をいの一番に紹介したのも、単にソフトの使い方を覚えて終わりというわけでなく、
Vimの思想を理解する事で、他のソフトウェアでもその思想を取り入れる事ができるからです。
ターミナルでの使いやすさ
編集操作と直接的には関係無いのですが、知っているとなにかと便利なので、こちらも紹介しておきます。
Vimは元々他のプログラムとの連携
拡張性の高さによるPersonal Development Environment (PDE)への足掛り
ここでちょいと脱線なお話なのですが、Personal Development Environment (PDE)についても記載しておこうと思います。
自分も完全に理解しているわけではないのですが、職人さんが己の道具を手入れし、より自分に合うように調整をしていくかのように、普段使いしているソフトを自分に合うように調整していく事を指していると大まかに認識しています。
これをするには使用するソフトウェアが拡張性が高く手を入れやすい事が重要だと考えています。
自分が知っている世間一般のテキストエディターとしては、VSCode・Vim・Emacs等がありますが、拡張性の観点から言うと以下のような偏見を持っています。
- VSCode
- ブラウザ技術の結晶でUIの表現力が凄い
- 手軽な拡張が難しく、設定もjsonであり手を入れずらい
- でかい所が作ってる拡張機能をポン付けで使えるが、細かく調整ができない
- Vim
- ターミナルでの使用を前提としているため、UIの表現力はそこそこ
- Vimそのものがスクリプト実行環境であり、拡張性が高い
- Emacs
- 本体そのものがLispで書かれて拡張されているようなものなため、拡張性が高い
- おそらく最もPDEに向いているが、テキストエディターに特化というよりそれを含んだPDEといった感じでどこを重視するかによって合う合わないが別れる
知ってると便利な事
Vimの諸々に慣れやすくなるかも?情報
- キーバインド系
- Shiftキーを使うと動作が大げさになったり反対になったりする
- プレフィックス
g
やz
を使うと別な機能となる
- ドキュメント
:help
コマンドでVimのドキュメントが見れる- プラグインで用意されている事もあり、その場合はプラグインのドキュメントも見れる
- fuzzy finder plugin等でhelpを検索できるようにしておくと便利
- 外部サイト
- vim-jpもおすすめ
†エンジニアの楽園†とも言われるほどのデカデカコミュニティ
vimに限らず様々な生の情報が飛び交う
最近はvim-jpラジオたるものも生まれ勢いもある
https://vim-jp.org/ - 実践Vim
Vimの書籍の中では聖書と名高い一冊、具体的な使用例を踏まえてその思想について記載されており、年が経っても色褪せない
https://tatsu-zine.com/books/practical-vim
- vim-jpもおすすめ
あとがき
いかがでしたでしょうか。
Vim自体は様々な環境にデフォルトで入っており、簡単な編集のみに使うといった用途もありますね。
そういったシュッと立ち上げてシュッと編集してシュッと閉じるといった使い方もできるので、
その軽さも良さに入るかもです。
ことテキストを†エディット†する事に関しては右に出るものがいないVimとかいうエディタ、
その思想・使い方に触れる事は今後の人生においても損はないと思います。
他のエディターでも大抵はVim拡張とかありますし、一度身につければ一生使えちゃいます!
人生の夏休みともいわれるほど自由な時間があるとされる大学生活、そんな中でVimに触れてみるのはいかがでしょうか。
ちなみに、実態はさておき、部内wikiによると†の推奨エディタはvimらしいっすよ。
はえぇ~知らんかったぜ