Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

69
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お前はVimとEmacsから逃げられない

Posted at

お前はVimとEmacsから逃げられない

VimとEmacsは、プログラマーの運命を握る双璧である。それは単なるエディタの枠を超え、OSの深奥に根を張り、あらゆる環境を支配している。
UNIX、Linux、MacOS、そしてWindows――どの道を選ぼうと、彼らの影響下を逃れることは許されない。これは宿命であり、真理である。

この記事は、とあるVimmerが、VSCodeしか使ったことがない人々を啓発するために書いたものです。 具体的には、「VimとEmacsがあなたをすでに固く束縛している」という事実を示すべく、勢いで仕上げました。

なお、この文章の作成にはGPT-4oの力を借りています。

※nanoがエディタならcatやechoもエディタ(自論)

Bash:VimとEmacsの闘争が息づく魔窟

Bashは魔界である。その奥底にはVimモードとEmacsモードという二大勢力の抗争が渦巻いている。初期設定ではEmacsキーバインドが支配し、Ctrl+Aで行頭、Ctrl+Eで行末に移動する操作がデフォルトとして君臨している。しかし、コマンド一つでその秩序は崩壊する。
set -o vi――この呪文を唱えた瞬間、BashはVimモードへと変貌を遂げる。そこで待ち受けるのは、Vimの編集モードが清濁併せ呑む世界だ。

Bashを使う限り、ユーザーは 「Vim」か「Emacs」かの二択を迫られる。 第三の選択肢など存在しない。ここは逃げ場なき戦場である。


真理の第一方程式

(Vim | Emacs) = Bash

MacOS:Emacsが浸透する静かなる支配

MacOSは、Emacsが静かに息づく庭園である。その起源を遡ればNEXTSTEPに行き着き、そこには既にEmacsキーバインドの種が蒔かれていた。Ctrl+Aで行頭に、Ctrl+Eで行末に――Macユーザーの日常は、知らず知らずのうちにEmacsへ飲み込まれている

だが、それだけではない。MacOSにはVimもまたプリインストールされている。ターミナルを開き、viと入力すれば、その瞬間にVimの世界が眼前に広がる。MacOSはVimとEmacsが共存しながらも緊張関係を保つ異界なのだ。

このように、MacOSを使う者は、Emacsの影響を逃れられず、Vimの存在を無視できない二重の呪縛に囚われる運命にある。


真理の第二方程式

Vim * Emacs = MacOS

Linux:Vimが覇を唱える大陸

Linuxは、Vimが闊歩する帝国である。すべてのLinuxディストリビューションはVimの存在を前提として設計されている。ターミナルを開けば、そこに待つのはvimであり、設定ファイルを編集しようとすればVimが呼び出される

さらに、リモートサーバーにSSHで接続した場合でも、Vim以外の選択肢など存在しない。そこにあるのは、ただひとつの真実――「Vimが唯一のエディタである」 という現実だ。たとえ最小構成でLinuxをインストールしようが、そこで待つエディタはVimのただ一つである。

Linuxは、Vimの影響から逃れる余地を一切与えない使う者すべてがその支配下に置かれる


真理の第三方程式

Vim = Linuxディストリビューション

Windows:WSLがもたらす昇華

かつてWindowsは、VimやEmacsから逃れる避難所のように見えた。しかし、その幻想はWSL(Windows Subsystem for Linux)の登場によって打ち砕かれる
WSLは、WindowsにLinuxの魂を吹き込む存在である。これを導入すれば、Bashが使えるようになり、VimモードかEmacsモードの選択を迫られる。そして当然ながら、vimもプリインストールされている

ここに至り、Windowsはもはや独立した存在ではない。それはLinuxへと昇華され、Vimの支配下に組み込まれるのだ。


真理の第四方程式

Vim = Linux = WSL = Windows

結論:お前らは逃げられない

Bashは「Vim」と「Emacs」の抗争が続く魔窟であり、MacOSは「Vim」と「Emacs」が共存する異界である。LinuxはVimの覇権のもとに統治され、WindowsはWSLによってLinuxに呑み込まれた

これらすべての事実が指し示すのは、「VimとEmacsから逃れる術は存在しない」 という冷厳な現実である。この記事を読み終えた今、あなたがすべきことは明確だ。まず、エディタとしてVimかEmacsのどちらかを選べ。そして、MacOSを使うなら、その両方から逃れられないことを心に刻んでおくが良い。

69
28
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
Linked from these articles

Comments

fujitanozomu
@fujitanozomu(藤田 望)

viとVimの区別がついてない人が書いた記事は読んでてモヤモヤする

7
fugahogeds
@fugahogeds

vscodeはctrl-aやe、kなどそれなりにEmacsだし、コマンドパレットなんてまんまEmacsよ

vi/vimは所詮設定ファイルいじるときにふと呼ぶ程度やなあ

2
Neuroi
@Neuroi

@fujitanozomu
この記事では、CLIエディタについて「キーバインドを主軸」に捉えています。

執筆中、Vimとviを分けて書くべき迷いましたが、「Vimを布教するのはキーバインドが優秀だから」という持論から、Vimとviの区別をつける必要はないと考えました。
さらに、エンジニアがVimを忌避する理由はその独特なキーバインドにあり、これはviも同様であるため、記事の内容によりVim、つまりVimのキーバインドからは「逃げられない」という説明をしたかった形になります。
そのため、環境に(Vim|vi)がプリインストールされているかという点で「.* = Vim」という主張をしています。

また、起動コマンドのviについてですが、少なくとも私が使用しているDebian(6.1.0)でプリインストールされているVim(小型軽量版)を使うには、viと打ち込む必要がありました。
viでVimを起動すると、vi互換モードで起動する場合もあるようですが、この記事の文脈ではviと書く方が適切と考えました。

また、「viとVimの区別がついてない人」という点について、一方的な決めつけに感じられ、少々遺憾です。
記事の内容について批判される場合は、「viとVimの区別をつけていない記事」という表現にしていただけると建設的な議論がしやすくなると思います。

10
Pulsar1722
@Pulsar1722

confファイルいじるときしかvim使わない勢なんですが、いい加減nanoエディタに慣れようと思って何度か使ってみてもどうしても慣れません。vimが染み付いてしまいました

2
Trubetzkoy
@Trubetzkoy

真理の第一方程式
(Vim | Emacs) = Bash
Vim使いなのにこの真理に気づいていませんでした。これが真理だから、私はBashが好きなことに気づきました。ありがとう!

2
horie-t
@horie-t(堀江 徹也)

まず、エディタとしてVimかEmacsのどちらかを選べ。

両方使っちゃ駄目ですか?
私はrootとして作業する時はVim、その他はeメールも含めてEmacsなコウモリです。

2
ippei-i
@ippei-i

linux系はデフォルトだとvi/vim系しか使えませんがほぼすべてのディストリビューションで
emacsがパッケージで用意されていますし、デフォルトシェルもほぼbashなのでvim帝国って感じはしないですね。私は最初にsudo dnf -y install emacsした後、cat >~/.emacs <<'EOT'で.emacsの設定ファイルを流し込むまでが定型作業。viを使うのはcrontabを設定する時くらいですかね。

2
fujitanozomu
@fujitanozomu(藤田 望)

@Neuroiさん、

Vimはviを倣って作成された経緯があるのでviとVimのキーバインドは共通してる部分がありますが同じではないですね。
@NeuroiさんがVimのキーバインドを高く評価されてるのは自由と思いますが、Bashがマニュアルでvi-style line editing interfaceと呼び、じっさいVimのキーバインドが再現されてるわけではないものをVimモードと言い換えるのはさすがにBashに対してもviに対してもリスペクトがないなと思いました。
viとVimの区別がついている人であればこういう雑な表現はできないとも思うんですよね。

0
fujitanozomu
@fujitanozomu(藤田 望)

関係ないけど

少なくとも私が使用しているDebian(6.1.0)で

いまDebianて最新が12だけどえらい古いの使ってるなあ。

0

Let's comment your feelings that are more than good

Being held Article posting campaign

69
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address