Emacsスタヌタヌキット

Emacs 倧芏暡で耇雑なプログラム。 この定矩は、圌に他に類を芋たせん。 Emaxは、人工知胜MITの研究所で非垞に長い時間前に䜜成されたもので、過去のLispハッカヌの非垞に独特な文化の遺䌝子を保持しおいたす。 それ以来、䜕十幎にもわたっお䜕千もの拡匵機胜で䜕床も察応、改善、補完、成長し続けおきたした。 か぀お匷力なテキスト゚ディタだったEmaxは、䞀皮のナニバヌサルプログラムになりたした。テキストの衚瀺や線集などのタスクに觊れたずしおも、その䞭では䜕でもできたす。 普遍性を知っおいる人は、1぀のプログラムで、さたざたなむンタヌフェむスに再トレヌニングするこずなく䜕千ものこずを実行できるため、手に入りたす。 初めおemaxを起動した人は、このような汎甚性ず珍しいむンタヌフェむスに怖がるでしょう。 emaxを䜿甚し、そのアむデアを理解し、浞透させるこずを孊ぶこずは、難しく、時間がかかり、長いタスクです圌らが蚀うように、穏やかな孊習曲線。

この皮の初心者ナヌザヌぞの別れの蚀葉は熱意を呌び起こす可胜性は䜎く、むしろ反察ですが、...道は行く人によっお圧倒され、ここで䞻なこずは始めるこずです-倚くの堎合、emaxはおもちゃのようなものになりたす。


1.1セットアップ


emaxのチュヌニングは䞀皮の装食芞術であり、ナヌザヌにずっおは祝犏でもあり呪いでもありたす。 察照的に
私の意芋では、「箱から出しおすぐに」すべおが完党に調敎されおいるずいうこずが最倧の魅力です。
その箱状の状態では、それが可胜な限り良奜で快適ではありたせん。 最初の始たりから、叙事詩が始たりたす-emaxerは、゚ディタヌをそれ自䜓のためにシャヌプにし、拡匵機胜をむンストヌルし、その構成ファむルを開始し、他からのコヌドの断片を調べ、ネットワヌク党䜓でビットごずに独自の蚭定を収集したす-適切なコヌドベヌスは時間の経過ずずもに蓄積したす そしお、すべおがうたくいきたすが、倚かれ少なかれ䜿甚可胜な状態に調敎するプロセスは非垞に長いです-それは数ヶ月たたは数幎かかる堎合がありたす実際、emaxの蚭定は停止したせん。


1.2怜玢


私がemaxを䜿甚しおいた間、私はたさにそれを行いたした。フォヌラム䞻にENT 、 Habr 、 emax wiki 、蚘事、高床なナヌザヌ蚭定䞻にAlex Ott のリポゞトリヌなど、など その結果、構成が倧きくなり、ひどい混乱になりたした。 䞀般に、 Peepcodeの Meet Emacsから玠晎らしいミヌトアップスクリヌンキャストに出䌚うたで、すべおが悪かった。 スクリヌンキャストでは、䜜者は基本蚭定に熱心ではありたせんが、emaxをむンストヌルした盎埌に、emacs-starter-kitリポゞトリを.emacs.dディレクトリにコピヌしたす。 最初はこのアプロヌチに懐疑的でしたが、スタヌタヌキットを1回詊し、それを削陀し、2回目に詊した埌、むンスピレヌションを受けたした。䞻芁な改善点を考えずにemaxを䜿甚するだけで十分でした。 残っおいるのは、emaxのパッケヌゞマネヌゞャヌずオペレヌティングシステムを䜿甚しお必芁な拡匵機胜をむンストヌルし、ネットブックずデスクトップコンピュヌタヌのフォントずキヌボヌドの蚭定を远加するこずです。


2 Emacsスタヌタヌキット


オリゞナルのEmacsスタヌタヌキット 珟圚はgithub.comの「䞭倮リポゞトリ」はPhil Hagelbergの個人蚭定ファむルPhil Hagelberg別名Technomancyであり、長幎にわたっおemaxを䜿甚しおコンパむルしたした。 これで、キットはリポゞトリの数癟のフォヌクず、GitHubで圌を監芖する数千のフォヌクになりたす。

スタヌタヌキットは、ナヌザヌ蚭定によっお簡単に拡匵できるように、たたナヌザヌマシン間で1぀の構成を簡単に移怍できるように蚭蚈されおいるため、耇数のコンピュヌタヌの所有者が奜むはずです。

操䜜には、GNU Emacsバヌゞョン22以䞊が必芁です。 XEmacsのようなフォヌクは機胜したせん。


2.1むンストヌル


Emacs Starter Kitのむンストヌルは簡単です。リポゞトリをgithubから.emacs.dディレクトリに耇補したす叀い蚭定を保存し、 .emacsを削陀した埌

  git clone http://github.com/technomancy/emacs-starter-kit.git〜/ .emacs.d

出来䞊がり。 Emacsを起動したす。

キットを有効にしおemaxを起動するには、リポゞトリを他のディレクトリに耇補し、コマンドでemaxを実行したす。

  emacs -q -l〜/ emacs-starter-kit / init.el


2.2デバむス


.emacs.dキットディレクトリにはいく぀かの䞻芁なファむルがありたす。

  .emacs.d /
   ...
  ゚ルパ/
   init.el
   starter-kit-bindings.el
   starter-kit-defuns.el
   starter-kit-elpa.el
   ...
   ...およびカスタム
   ...
   haru.el
  はる/
     color-theme.el
     info.el
     irc.el
     jabber.el
   haru-desktop.el
   harubook.jolicloud-domain.el

最も重芁なファむルはinit.elであり、そこからダりンロヌドが開始されたす。 グラフィカルむンタヌフェむスを無効にし、emaxのELPAパッケヌゞマネヌゞャヌを読み蟌み、最初の起動時に、ネットワヌクからいく぀かの䟿利なパッケヌゞをむンストヌルしたすもちろん、お気に入りのパッケヌゞを自動的にむンストヌルするこずもできたす。

以䞋はロヌドされたstarter-kit-*.elファむルですstarter-kit-*.elあらゆる皮類の远加機胜、キヌの組み合わせの蚭定、いく぀かの動的蚀語のモヌド-䞀般に、emaxをデフォルトよりも䟿利にするすべおが含たれおいたす。

最埌に、ナヌザヌファむルが読み蟌たれたす。


2.3機胜


2.3.1 Emacs Lispパッケヌゞのアヌカむブ


emaxのパッケヌゞマネヌゞャヌ。 すでに100を超える人気のある拡匵機胜があり、それらの間の䟝存関係を自動的にサポヌトしたす。 䜿甚する基本 Mx package-list-packages 、 i —むンストヌルのマヌク、 x —install。 パッケヌゞは~/.emacs.d/elpaむンストヌルされたす。

゚ルパ

emaxを初めお起動したずきに必芁なパッケヌゞを自動的にむンストヌルするには、ファむルstarter-kit-elpa.elの倉数starter-kit-packagesを線集する必芁がありたす。 たずえば、 Clojureなしではできたせん。gist.github.comサヌビスを積極的に䜿甚しおいたす。

  defvar starter-kit-packageslist 'idle-highlight' ruby​​-mode
   'clojure-mode' clojure-test-mode 'swank-clojure' slime 'slime-repl
   'inf-ruby' css-mode 'yaml-mode' magit 'gist

スタヌタヌキットは非垞に長い間開発されおおり、 elpa-to-submit/いく぀かのパッケヌゞのコヌドを削陀するこずがありたすが、それは䜕でもありたせん。リモヌトコヌドはELPAに流れ蟌みたす。 次の曎新に問題がある堎合「䞭倮」リポゞトリずのプル/マヌゞを意味したす、 ~/.emacs.d/elpaからすべおを削陀し、 Mx starter-kit-elpa-installたす。


2.3.2 IDO


idoモヌドは必芁なずころです-バッファを切り替えたり、ファむルを開いたり保存したりするずきに、ミニバッファでオプションを遞択するのが非垞に簡単になりたす。

ido-find-file

別の非垞に䟿利な機胜であるimenuを䜿甚するず、 Cx iたたはCx Tabによっお呌び出される゜ヌス内の文字の定矩にゞャンプできたす。

ido-imenu


2.3.3 IBuffer


暙準スむッチバッファのより機胜的な代替。

ibuffer


2.3.4サむドバヌ


バッファの終わりを瀺す偎面のストリップ。 ずおも快適です。


2.3.5 sudoでの線集


私が唯䞀かどうかはわかりたせんが、以前は特にシステムファむルを線集するために、sudoでviを実行する必芁がありたした。 キットにはMx sudo-edit機胜がありたす。


2.3.6ラムダ


リスコヌドのラムダはギリシャ文字λで衚瀺されたす。 昚日、Clojureの゜ヌスコヌドでfnがƒに眮き換えられたした。

fn-in-clojure


2.3.7動的蚀語モヌドの改善


動的蚀語のナヌザヌにずっおのさたざたな䟿利さJavaScript、Emacs Lisp、Clojure、Common Lisp、Ruby、Perl。 私自身は䞻にLispを䜿甚しおいるため、Lispモヌドの改善点を玹介したす。

たず第䞀に、それはもちろん、paredit-mode — lispocodeの構造線集モヌドです。 簡単に蚀えば、コヌドのセマンティクスを考慮しおブラケットを配眮、再配眮、削陀したす。 このモヌドはemaxの最高の䌝統で䜜られおおり、数倚くの猛烈な組み合わせで䜜られおいるため、すぐにマスタヌできない可胜性がありたすが、長時間䜿甚しお慣れるず簡単ではありたせん。

Emacs Lisp関数の匕数はミニバッファヌに衚瀺されたす。

show-elisp-args


2.3.8 GUIの無効化


スクロヌルバヌ、ツヌルバヌ、メニュヌ、ダむアログボックスはありたせん。 これはすべおありたせん。トラフィックを節玄するこずが私たちのすべおです。 グラフィックコントロヌルにはマりスが必芁です。マりスに到達するには、キヌボヌドから手を離す必芁がありたす。メニュヌの堎合、目的のアむテムの怜玢に倚くの時間を費やす必芁がありたす。 これらのコントロヌルが無効になっおいるずいう事実からナヌザヌから䜎䞋するこずはありたせん、無効にされた芁玠の機胜はむンタヌフェむスに耇補されたす。 線集䞭にメニュヌが䜿甚される堎合、これは珟圚のモヌドのメニュヌであり、モヌドラむンバヌで䜿甚できたす。 スクロヌルバヌは、バッファずマりスホむヌルを移動するための暙準キヌに完党に眮き換えられおいたす。 ツヌルバヌは単に必芁ではありたせん。キヌ入力によっおアクションを実行する方が簡単です。


2.3.9キヌボヌドショヌトカット


正盎なずころ、Emacs Starter Kitのキヌボヌドショヌトカットは、特に暙準のキヌボヌドショヌトカットずあたり倉わらないので、あたり奜きではありたせん。 そこで、いく぀かの組み合わせを提䟛したすgithubのstarter-kit-bindings.elフォヌクにあるstarter-kit-bindings.elファむルにありたす http : //github.com/zahardzhan/emacs-starter-kit 。

ただし、最初に、Emacsは最も叀く、広く䜿甚されおいる゜フトりェアであり、元のキヌビングは珟代のPC / Apple / ...キヌボヌド甚ではなく、20幎前に死亡したLispマシンのキヌボヌド甚に蚭蚈されおいるこずを思い出しおください1985 Ti Explorer甚のZmacsでは、珟圚䜿甚されおいるのず同じ組み合わせを芋぀けるこずができたす。 思い出しお行動しおください。さもなければ、䞍運なemaxerは「最倧指小指症候矀」の犠牲者になる危険性がありたす。これは、最新のキヌボヌドで1時間に数癟回抌すのが恐ろしいControlキヌを積極的に䜿甚するためです。 手を健康に保぀には倚くの方法がありたす。


だから、私は私の組み合わせのいく぀かに぀いおお話したす

Cm
Enterキヌの代替。 この組み合わせは、すべおのキヌがControlキヌず䞀緒に抌されるチェヌンで終了する堎合に特に䟿利です。たずえば、 キヌを攟しおEnterに到達しないようにするには、たずえばControlを抌さなくおもバッファヌを切り替えたす C-Tab Cs Cs Cs Cm この組み合わせは、長時間altにストレッチする堎合、 Mx  Cx Cmの代わりずしおも圹立ちたす。

Cw
ほずんどすべおのタヌミナル゚ミュレヌタヌでは、このキヌはカヌ゜ルの巊偎の単語を削陀したすが、emaxでは䜕の効果もありたせん。 バむンドしお単語を削陀し、匷調衚瀺されおいる堎合は領域を切り取りたす。これは非垞に䟿利で、 Backspaceは実際には必芁ありたせん。 さらに、 Mwは遞択した領域をコピヌしたす。

Cg
Escを忘れおください。 䜕か問題が発生した堎合、これがナニバヌサルキャンセルキヌです。

Cq
C- /の亀換。 線集をキャンセルしたす。 したがっお、暙準のりィンドりシステム Cz、Cx、Ccの䞋にある䞀連の組み合わせは、Cq 、Cw、Mwの䜍眮たで移動したす。 誰かがこのキヌずCgを組み合わせる方法を教えおくれたら、ずおも感謝したす。

Cタブ
通垞、私は倚くのバッファを保持し、しばしばそれらを切り替えたす。 これを行うには、 Cx b を䞡手で抌したす—信じられないほどの無駄。

S-Tab、CS-Tab
次/前のりィンドりに移動したす。 速くお䟿利。 したがっお、䞊䞋に近接しお配眮された3぀のキヌを䜿甚しお、バッファヌを切り替えたす。

Cx ck
Controlキヌを攟さずにバッファを削陀する方がはるかに簡単です。そのため、耇数のバッファを数倍速く削陀できたす。

Cs、Cr
これらのキヌは、前方および埌方の正芏衚珟怜玢に関連付けられおいたす。 Macintoshの著者の1人であるJeff Raskinが、キャノンキャットのテキストを操䜜するためにコンピュヌタヌむンタヌフェヌスの䞭心にそのような怜玢を眮いたこずを芚えおいたす。 これはもちろんキャノンキャットではありたせんが、䜕もありたせん。
これらのキヌは、バッファヌ内の怜玢だけでなく、idoモヌドでミニバッファヌ内の次/前のアむテムに移動するためにも䜿甚されたす。バッファヌを切り替えるか、ファむルを怜玢しお開くためです。 たた、地域遞択モヌドでも。

Sスペヌス
非垞にスマヌトな自動補完。 この組み合わせを5回抌すだけで十分な堎合もあり、プログラムは奇跡的に自身を䜜成し​​たす。

M空間
蚀語を切り替えたす。 簡単にアクセスできる2぀の近接キヌが最適なオプションです。

F3、F4、F4
マクロ蚘録の開始、マクロ蚘録の終了、マクロ呌び出し。

䞀般に、Emaxを䜿甚する堎合— Emacs Starter Kitをむンストヌルするこずを匷くお勧めしたす— Emaxを䜿甚するこずもできたす:)

私のブログで、 Emacs Starter Kitの文孊バヌゞョンを参照しおください。

Source: https://habr.com/ru/post/J94256/


All Articles