Vim、Emacs、およびキーボードをどのように愛したか

ある程度まで、この記事は「なぜ21世紀のプログラマーのVi-Ax」の出版物への答え、というよりは追加物です。 私はコメントで人々がまだ疑問に思っていることを見ました:本格的なIDEがあるとき、これらのエディターのポイントは何ですか? この記事ではいくつかの実際の例を挙げており、私が何か言いたいことがあることに気づいて、自分の経験を共有することにしました。 それは芸術的なスタイルで書かれています。なぜなら、もし人々がドライスクイーズを望むなら、彼らはマニュアルを読むだけだと思う​​からです。 また、Emaxのマニュアルでは、AltキーはMetaと呼ばれています。 多くの人にとって、この名前はより親しみやすいので、「Alt」と言います。



今後は、Evil プラグイン(VIM機能をエミュレートするプラグイン)のコーディングにEmaxを使用し、挿入モードのこのプラグインに対して無効にした組み合わせ(つまり、「Escape」を押してEmacsが再生する必要がある) vimでは、挿入モードでは通常のEmacsと同じです。想像してみてください。夜はスーパーヒーローXですが、日中は普通のスーパーヒーローYであるため、真の分身は誰も知りません。)



「あなたのタイピング速度は?」-ちょうど6ヶ月前に練習したときに尋ねられた質問は、私を恥ずかしく感じさせ、目を下ろしてつぶやきました「まあ、正確な速度を測定しませんでしたが、半分盲目です...」私は、ブラインドセットのシミュレーターに捧げられたHabréのコメントで、同様の誇らしい答えをコメントで「ハーフブラインド...」と見ました。 残念ながら、読者の1人が「ハーフブラインドセット」を持っていて、もっと欲しい場合は、和解してください。私の謙虚な意見は、VimまたはEmaxを使用しないことは禁忌だと言っています。 これらのエディターでコード(別名、大量のテキスト)を作成する場合、この種のセットがなくても、2つの方法しかありません。通常のエディターを使用して、盲目的に入力する方法です。 矢印の代わりに「Ctrl + n / Ctrl + p」や「Ctrl / Alt + b / f」などを使用してテキスト内を移動する場合、押す位置を見るために毎秒目を下げることができないためです。 。 しかし、最初は非常に困惑していました-「ボタンの理由」n「ボタンの代わりに」b "? そして、「p」ボタンを押すだけで、「[」を押したような効果が得られました。「キー」。 しかし、私を信じて、これは合格します。



比較的最近、私は普通の学生であり、想像力に富み、表面的な知識が豊富で、深刻なプログラミングの経験はありませんでした-平均的な愛好家です。 偶然にも、この学生は幸運にも、GNU / Linuxを実行しているコントローラー用のソフトウェアを、そしてもちろん「最も人気のあるOS」の下で書いている1つの大企業の支店に入りました。 最初は研究所からの練習としてそこに着きました.GNU / Linuxの下のサーバーとWindowsのクライアントの形でいくつかの小さなソフトウェアを書き始めました。その後、プログラマーとして受け入れられ、すでに労働者として追加しました。



「平均的な愛好家」のように、私は自宅にGNU / Linux (Kubuntu)を持っているので、仕事のために仕事と不快なWinXP (KDEに比べて)を備えた裸のコンピューターを与えられたとき、私は1つのシステムをvirtualkaの下に維持するための開発では、HR'yushaにこの役割を割り当て、KubuntaをオフィスのPCにインストールすることにしました。



「これは私たちの記事と何の関係があるのですか?」とあなたは尋ねます。 ああ、最も直接的です。私の決定の結果、私はVisual Studioを自動的に奪われました。 それから、Linuxに対応するQtCreatorの対応物については知りませんでしたが、より正確に知りましたが、Qtでの開発にしか使用できないと思いました。 したがって、選択はCodeBlocksに委ねられました。 一部には、この選択は、このIDEがLinuxソフトウェアのオフィスで広く使用されているという事実によるものでもありました。



CodeBlocksはエディターとして長い間存在していませんでした。すぐにサードパーティのコードを編集し、コンパイル専用にこのIDEを起動しました。 SublimeTextを使用した経験が少しありました-CodeBloaksでコードを編集するのは非常に不便に思えました。 時間が経つにつれて、CBが気に入らなかった具体的なことは思い出せません。ただし、オートブラケットのセマンティクスが完全に欠けているため、それらをオフにするのが簡単になりました。STの最高の配色と、もちろん、最新の「ミニマップ」のキラー機能「。



残念ながら、SublimeTextからEmacsに切り替えた瞬間は頭から完全に落ちました。 私はそれがどのように起こったのか推測することしかできません。 何か新しいものが欲しかったと思います。 あるいは、かなり長いプログラミング経験を持つ独立した人々によって書かれたEmaxでのコーディングがいかに素晴らしいかに関する多くの記事に触発されたのかもしれません。 何度かEmaxに切り替えようとした後、彼が積極的に使用している別の都市の友人に不平を言ったことを覚えています。 私がこの編集者を悪い言葉と呼び、泥を注ぎ、あらゆる方法で屈辱を与えたのを覚えています。誰かが「男、あなたは馬鹿だ、あなたはこれを理解していないだけです。だからあなたはそれを言うのです。 しかし、友人は賢明な何かに答えることができる唯一の人であり、何らかの理由で彼は黙っていました。 そして、高速事故とレース以外のトラックでの事故の後、私は突然椅子に座り、ターミナルでtcpdumpディジットが走っていたので、すぐにEmaxエディターに何かを入力しました。 「目が覚めた-石膏。」



最初にEmaxを最初に手にした人は、このエディターから根本的に間違った期待を抱いています。それを何度も偶然見つけました。そのため、すぐには使い始めませんでした。 30年以上のプログラミング経験を持つクールなおじさん、理学博士はIDEの代わりにそれを使用し、それについての投稿を書いています。 しかし、私の世界では、数十キロワットの溶接機を求めたとき、彼らは私にこすり、たくさんのfire、巨大なフォリオを与え、明日はここが暑いと言いました。 また、ボリュームを木材と混同しないようにアドバイスしました。



あなたはそれがあなたのために働く前に、あなたはそれを設定するのに多くの時間を費やさなければならないことを理解しなければなりません。 そして、elisp (このエディターがスクリプトに使用する言語)の学習を避けることができることを望んでさえいません-もちろん、Githubのようなソーシャルネットワークで見つかったコードが理由で助けを求めたい場合を除きますしかし、誰かの設定では、コメントに書かれているとおりに機能しません。



しかし、これはすべての歌詞です。私はLispのプロではありません。また、この記事はEmakの構成のニュアンスに関するものではないので、このトピックは別としておきます。



そのため、時間間隔までにVimに到達していないため、Alt / Ctrlに加えて文字を移動するのが不便であることがわかっている組み合わせしかありません。 知らない人や覚えていない人のためのミニメモ:



Forward char ⇒ Ctrl+f
Back char    ⇒ Ctrl+b
Forward word ⇒ Alt+f
Back word    ⇒ Alt+b
Line up      ⇒ Ctrl+p
Line down    ⇒ Ctrl+n

      
      





, ! , , Caps-Lock Ctrl, , -. , . , , ! -, . , — , , — «f,j», ; , . -, [/], , , ( ) — .. , , , . , Ctrl , vim', .



— «Ctrl+x b», (aka ), . . , «ido-mode», , , . «Ctrl+s», «Ctrl+r» . ? : Visual Studio, , , VsVim «. », «. », « №n». ok', 100500 , . . . , : , ? — , - , , , , , .



, , IDE': , . , α) , β) «\bmy_var\b», , . α, β, .. , , . , , , β: , , , , , , — .



«*scratch*». , , . . , - . , , , — , , . , , , (, , , — ). , , - . SublimeText, , , , . IDE ? , , ?



Visual Studio, , intellisense. , . , , try-catch, . , , - , , , . , , — achtung! — , , , ! , — , Visual Studio, , . , - , , , ., , , . , , — , «flycheck». vim( «=» ).



«Super-i». , , , «ido-menu», , , IDE . , , , . : . , , , . «Ctrl-u Ctrl-space».



— / , , . , . : — ? , , ? , «(delete-trailing-whitespace)», , , , «before-save-hook», . , , , ++ ? ! «before-save-hook» , , /++, , . .



, Visual Studio — «Alt+q», - . .. - , . , , , - , Visual Studio CodeBlocks.



, , , . Emacs , , , — — , ( , , , ), , . , , IDE , , , . C# .. omnisharp-server, , , «go to definition», « », , . elisp, , . , — , «omnisharp-mode». . , , , , , github .



, Vim' , . , «» « » , , , «End» «Enter» — . «» . , , : Vim, ?



, , VIM. : Visual Studio #, Omnisharp server'a , .. 12+ , , , , . Visual Studio , . : ; - , , «Ctrl-→» «Alt-f», . -, Alt — , , — , , , . ( File, Edit, .), - . , , . , , «» Windows .



-, Visual Studio (achtung!) « »! .. «Ctrl-→», , IDE ! , , 80% , , , .



- , Visual Studio, VIM. VsVim, . , « »! : , - , , VIM', , , VsVim, , . hjkl , , , .



« Vim?» , , «Ctrl/Alt-key» . : Ctrl. , Escape , , . , , , /.



Vim . . , , ? M(iddle), H(ihg), L(ow) . ? «Ctrl+d»/«Ctrl+u». / ? [<>, ]<> . ? «5k». ? «3b». ? «gd». ? «f,» , ? «Ctrl-o» «Ctrl-i» .



, , - . , vim , , , - , . , Emacs, Alt Ctrl, , , . , , . , ( , ) , .



, , vim — . . , ( , , , ) , . , ? «=i{» , ? «da<». : , i(nside) a(, ), , . w(ord), , , . «» , . «i», , .



vim Emacs, , vim . , ! … , … - , vim'a? , , «Evil»! «Escape» Emacs , « » vim? ? — :



;; remove all keybindings from insert-state keymap
(setcdr evil-insert-state-map nil)
;; but [escape] should switch back to normal state
(define-key evil-insert-state-map [escape] 'evil-normal-state)

      
      





, , , - , , LISP, .



, IDE Emacs ? , , .



, , , , FireFox Pentadactyl. Vimperator, , , . , , Pentadactyl - . , . . , Mozilla, Pentadactyl - , . , , , , , , , . , . , - , , .



Awesome, , .



All Articles