GNU/Linux >> Linux の 問題 >  >> Linux

Emacs入門:基本的なコマンドの説明

Linuxには多くのテキストベースのエディタがあります。ほとんどのディストリビューションが付属しているものもあれば、事後にインストールする必要があるものもあります。テキストベースのエディタは、Linuxユーザーまたは管理者にとって重要なツールです。サーバーにはGUIがないことが多く、Linux自体は非常に安定していますが、GUIがクラッシュするのを何度も目にしました。 GUIを紛失した場合は、使い慣れた一連のテキストベースのツールを用意する必要があります。

GNU Emacsの操作の基本を始める前に、まず何かを明確にしたいと思います。あなたはおそらく、多くの過熱した議論の原因となっている「EmacsVsVim」戦争を知っているでしょう。私はVimが大好きで、10年以上使用しています。しかし、これがEmacsに関することであり、単なるテキストエディタではありません。

そのコアでは、Emacsは単にバッファとフレームのフレームワークとして説明することができます。フレームはウィンドウを分割する方法であり、必要な数のフレームを持つことができます。 GUIモードでは、それぞれが1つ以上のフレームを含む複数のEmacsウィンドウを持つことができます。次に、バッファがあります。バッファは、どこかから供給されているコンテンツで満たされています。バッファにファイルをフィードすると、Emacsはテキストエディタの役割を果たします。 Emacsをウィンドウマネージャーとして使用することもできます。

Emacsのレイアウトに慣れる

まず、基本に焦点を当てましょう。ここでは、Emacsの操作の基本を学びます。

Emacsは、ディストリビューションのパッケージ管理から直接インストールできます。インストール後、Emacsを起動するとGUIモードが起動します。このモードは、メニューバーへのアクセスを提供するため、起動時に役立ちます。すべてのメニューエントリはEmacsコマンドを実行するだけであり、これはすべてテキストモードで実行できることを覚えておくことが重要です。 GUI環境でテキストモードを強制するには、 emacs –nwを実行します。 ターミナルで。

Emacsを初めて起動すると、ウェルカム画面が表示されます。この画面には、すでにEmacsの機能がさらに表示されています。下線付きのテキストはリンクです。マウスをクリックするか、カーソルを合わせてEnterキーを押すと、リンクをアクティブにできます。いくつかはウェブページへのリンクであり、おそらくeww(Emacsの組み込みウェブブラウザ)を開くでしょう。そのページには組み込みのチュートリアルもあります。

最初のレイアウトは単一のフレームで構成され、おそらくEmacsに関するコンテンツが含まれています。フレームの下にはステータスバーがあり、ステータスバーの下には何もないスペースのように見えます。この空のスペースは、実際にはEmacsがあなたと対話するために使用するミニバッファーです。画像では、ミニバッファにisundefined。

というテキストがあります。

Emacsのキーバインディングの基本的な概念

キーバインディング(またはキーボードショートカット)は、Emacsに命令する方法です。常にキーバインディングで始まります。

Emacsは修飾キーをキーバインディングプレフィックスとして使用します。最も重要な修飾子は、C(Ctrl)、M(Meta)、S(Shift)です。 M(メタ、通常はALTに割り当てられます)。

要約すると、重要な規則は次のとおりです。

  • C =Ctrl
  • M=メタ=Alt
  • S=シフト

私は正直に言って、キーバインディングは人々がEmacsの学習から離れる主な理由の1つだと思います。デフォルトのEmacsセットアップには1300を超えるキーバインディングがあります。ただし、Emacsはファイルを編集するときのテキストエディタにすぎないことを忘れないでください。これらの1300以上のキーバインディングは、ファイルの編集よりもはるかに多くのことを行います。

では、どのようにしてEmacsとそのキーバインディングへの執着を学び始めるのでしょうか?それはかなり単純です、基本的な考えは一度にいくつかのキーバインディングを練習することです、それらは非常に速く筋肉の記憶になります。私がEmacsについてのビデオレッスンを録画するとき、私はそれらを押すときにキーバインディングを言います、少なくとも私は試みます。真実は、私がまだそれらがどれであるかを理解しようとしている間に、キーストロークが長い間行われ、処理されているということです。最大かつ最も難しい部分はこのドキュメントです。

始めて、キーバインディングをたくさん練習することを忘れないでください!

キーバインディングの記述方法を説明する最良の方法は、いくつかの例を使用することです。ただし、すべての例がファンクションキーバインディングであるとは限りません:

  • C-x =CTRL + x
  • C-x 2 =CTRLとxを押してから2を押します(2を押す前にCTRLキーを離す必要があります)
  • C-x C-2 =CTRLとxを押してから、CTRLと2を押します。またはCTRL-x-2(CTRLを離さないでください)
  • M-xコマンド =META+xを押します

また、ドキュメントには、()のテキストで記述されたキーバインディングも定期的に表示されます。

C-x C-f (find-file)

()内のテキストは、このキーバインディングで実行されるEmacs関数を表しています。これがなぜ重要なのかがすぐに明らかになります。

Emacsのお気に入りのキーはCTRLとALTです。 Altキーを使用しても問題は発生しませんが、左Ctrlキーを頻繁に使用すると、小指の問題が発生することがよく知られています。 xmodmapを使用して、CTRLキーとCAPSLOCKキー、またはその他の任意のキーを簡単に入れ替えることができます。

キーバインディングでのEmacsの使用別名Emacsコマンド

前に述べたように、一度にいくつかのキーバインディングを学ぶことに焦点を当てると、それらは筋肉の記憶になります。最初のセットは最も難しい部分ですが、テキストエディタとしてEmacsを使い始めるには十分です。

フレームの操作
C-x 2 split-window-below
C-x 3 split-window-right
C-x o その他のウィンドウ
C-x 1 delete-other-window
C-x 0 delete-window
バッファの操作
C-x b バッファへの切り替え
C-x C-B list-buffers
C-x k キルバッファ
ファイルを開いて保存する
C-x C-f find-file
C-x C-s save-buffer
検索と置換
C-s search-forward
C-r 検索-後方
選択、切り取り、コピー、貼り付け
C-<スペース> set-mark-command
C-w kill-region
M-w kill-ring-save
C-y ヤンク
コマンドの実行
M-x execute-extended-command

これらについて詳しく話しましょう。

Emacsでのフレームの操作

前述のように、フレームはEmacsがウィンドウを分割する方法です。バッファについて学ぶ前に、画面をどのように分割するかを見てみましょう。

  • C-x 2は、現在のフレームを水平方向に分割します。
  • C-x 3は、現在のフレームを垂直方向に分割します。
  • C-x oは、フォーカスを次のフレームに移動します。ミニバッファがアクティブな場合、それはサイクルの一部になります。
  • C-x 1は他のすべてのフレームを閉じ、現在のフレームのみを残します。バッファを閉じません。
  • C-x0は現在のフレームを閉じます。

下の画像は多くのフレームを表示しており、一部は同じバッファを表示していますが、カーソルが異なる場所にあります。

Emacsでのバッファーの操作

  • C-x b(スイッチからバッファへ)
  • C-x C-B(リストバッファ)
  • C-x k(キルバッファ)

バッファはあなたが扱うものであり、バッファにはデータ、主にテキストが含まれています。ファイルを開くと、そのファイルの内容がバッファーに入れられます。このバッファは、ファイル名にちなんで名付けられます。次に、バッファ内で作業します。保存が要求されると、変更がソース(ファイル)に適用されます。デフォルトでは、Emacsには自動保存機能があります。 x分ごとに保存されるわけではありませんが、バッファに対して行われたx個の変更ごとに保存されます。変更なしでバッファを開いても、自動保存はトリガーされません。

別のバッファに切り替えるには、 C-x bを押します。 ミニバッファがアクティブになり、バッファ名を受け取る準備が整います。オートコンプリートはキーにバインドされています。複数の一致が可能な場合は、をもう一度押すと、すべての一致が可能な一時バッファが作成されます。存在しないバッファ名を指定すると、新しいバッファが作成されます。これは新しいファイルを作成しません。私はよくこれを使って一時バッファを作成します。

多くのバッファを用意するのに時間はかからず、すべてを覚えているとは限りません。現在開いているすべてのバッファを一覧表示するには、 C-x C-bを押します。 。新しいバッファは、バッファの完全なリストとともに分割フレームで開きます。矢印キーを使用してそのバッファ内を操作し、 を使用してバッファに切り替えることができます。

バッファリスト内から、次のポイントでエントリにフラグを立てることができます:

  • sを押して保存する
  • d を押して削除(バッファを強制終了し、ファイルを削除しません) またはk
  • uを押してフラグを削除します
  • x を押して、マークされたすべてのフラグを実行します

バッファを強制終了するには、 C-x kを押します。 ミニバッファがアクティブになり、バッファ名を待ちます。既存のバッファ名を入力して、 を押すことができます。 。名前を指定せずにを押すと、Emacsは現在のバッファーを閉じます。

次の画像は、保存または削除のフラグが設定されたバッファを含むバッファリストを示しています。

Emacsでファイルを開いて保存する

  • C-x C-f(ファイルの検索)
  • C-x C-s(保存バッファ)

ほとんどの場合、ファイルを操作する必要があります。 C-xC-f。を押してファイルを開くことから始めます。 ミニバッファはパスを提示し、開きたいファイルのパスを入力する準備ができています。ここでもオートコンプリートが機能します。 ディレクトリとファイル名をオートコンプリートします。ファイルパスに問題がなければ、 を押します。 。新しいバッファがファイルの内容とともに開きます。バッファはファイルにちなんで名付けられます。バッファが変更されると、ステータスバーの左側に2つの星が表示されます。変更を保存するには: C-x C-s

C-x C-fを押した後に存在しないファイルへのパスを指定すると、新しいバッファが作成されますが、ファイルはバッファを保存したときにのみ作成されます。

C-x C-fの後にディレクトリパスを指定すると、ディレクトリの内容を含む新しいバッファが開きます。この新しいバッファはDIREDモードになります。 DIREDモードでは、矢印キーを使用して操作できます。目的のファイルでを押すと、新しいバッファで開かれます。ディレクトリでもう一度を押すと、新しいバッファがDIREDモードで開きます。

DIREDモードでは、ファイルシステムに対して多くの操作を実行できますが、前に説明したように、最初に基本に焦点を当てましょう。

Linuxシステムで作業する場合、ルートアクセスを必要とするファイルで作業する必要があることがよくあります。 Emacsはこれを非常にうまく処理します。 Emacsを閉じてrootとして実行しないでください。これは良い考えではありません。

C-x C-fを押します 次に、ミニバッファ内の指定されたパスを消去し、 / sudo ::/ path / to / file に置き換えます。 Emacsはsudoコマンドa ndを使用してファイルを開こうとします 必要に応じて、パスワードの入力を求められます。

オートコンプリートを使用しようとすると、必要に応じてパスワードが要求され、オートコンプリートが機能します。 DIREDモードはrootとして開くことができます。 * tramp/sudo…という名前の新しいバッファに注意してください。作成されます。これは、Emacsがsudoを処理するために必要なバッファーです。

削除することはお勧めしませんが、保存しようとするとパスワードの入力を求められる可能性が高く、トランプバッファが元に戻ります。ルートとして複数のバッファを開くと、複数のトランプバッファになります。

Emacs内からsshを使用してリモートコンピューターでファイルを開くのは簡単です:

C-x C-f /ssh:[email protected]:/path/to/file

ルートとしてリモートシステムでファイルを開くことについて疑問に思う必要がありますか?はい、でもこれはまた別の機会に保管します。

この画像は、私のホームディレクトリの左側のフレームのDIREDモードと、右側の私の.emacsファイルに表示されています。

Emacsでの検索と置換

  • C-s(isearch-forward)
  • C-r(isearch-backward)
  • M-%(クエリ-置換)

前方検索を実行するには、 C-sを押します。 これにより、検索するテキストを入力するためのミニバッファーがアクティブになります。入力すると検索が行われます。次の試合に移動するには、 C-sを押します。 また。検索はラップアラウンドしますが、一度警告した後。バックスペースを押すと、文字を削除する前に、最初に前の一致に戻ります。

逆方向に検索するには、 C-rを押します。

置き換えるには、 M-%を押します。 これで、ミニバッファーで検索パラメーターを取得できるようになります。入力してを押します 、次に置換文字列の入力に進み、 を押します。

検索と置換はカーソルからバッファの終わりまで実行されます。

Emacsで選択、切り取り、コピー、貼り付け

  • C- (set-mark-command)
  • C-w(kill-region)
  • M-w(kill-ring-save)
  • C-y(ヤンク)
  • M-y(ヤンクポップ)

Emacsには、選択、切り取り、コピー、貼り付けというまったく異なる概念があります。まず、選択について見てみましょう。マウスはGUIモードで非常にうまく機能しますが、マウスを使用しないことを学ぶと、GUIがなくなったときに効果があります。選択された領域と呼ばれるもの、Emacsはアクティブ領域と呼ばれます。領域を選択またはアクティブ化するには、目的の領域の先頭にカーソルを置き、 C- を押します。 カーソルを1文字移動して、目的の領域の終わりを通過します。この領域は自動的にアクティブになります。このアクティブ領域の概念は今では無意味に思えるかもしれませんが、反復的なタスクを自動化する機能を作成し始めるときに理解することが重要です。

Emacsはカットせず、殺します。 C-wでアクティブ領域を強制終了した場合 、Emacsはそれをバッファから「切り取り」、キルリングに保存します。キルリングは、複数のエントリをキルしたままにします C-w またはコピーしたM-w 。次に、これらのエントリをキルリングからヤンク(貼り付け)して、 C-y の時点で現在のバッファに入れることができます。 C-yを押した直後の場合 M-yに進みます キルリングからバッファに貼り付けられたエントリは、前のエントリに置き換えられます。キルリングからエントリをヤンクしても、そのエントリはキルリングから削除されず、後で再度ヤンクできます。

Emacsで拡張コマンドを実行する
  • M-x(execute-extended-command)

Meta-xは一意のキーバインディングです。キーバインディングを押した後、ミニバッファを確認します。カーソルは自動的にそことEmacsに置かれ、コマンドを受信する準備が整います。

キーバインディングのコマンドは括弧内に記述されています。コマンドを入力するときは、括弧を入力しないでください。コマンドを書き込んだら、を押します。

M-xコマンドが次の形式で記述されているのが一般的です。

M-x find-file <RET> ~/path/to/file <RET>

オートコンプリートはキー

でサポートされていることに注意してください

キーバインディングを使用できるのに、なぜコマンドについて学ぶのですか?まず、1300を超えるキーバインディングがあっても、すべてのコマンドに1つあるわけではありません。コマンドはまた、選択された領域(アクティブ領域)またはバッファ全体に必要な変更を実行するための関数を作成する能力を提供します。これらの関数は、 M-x functionNameを使用して呼び出すことができます。 必要に応じて、選択したキーの組み合わせにバインドします。

新しいユーザーに表示する価値のあるコマンドの1つは、M-xシェルです。 。私が言ったように、Emacsは単なるテキストエディタではないことを覚えておいてください。上記のコマンドは、シェルプロンプトで新しいバッファを開きます。これは完全なターミナルエミュレータではありません。たとえば、curlベースのアプリケーションをうまく処理できません。表示が正しく更新されません。しかし、他にも利点があります。このシェルバッファは、読み取り/書き込みテキストバッファです。最後にカーソルを置いてコマンドを入力し、 を押します。 、コマンドがサブシェルに送信され、出力がバッファに追加されます。これにより、簡単に前後に検索したり、コピーして貼り付けたり、リージョン全体を選択したり、バッファの内容をファイルに保存したりすることができます。

学習する2番目に重要なコマンドはM-x ren-buf NewBufferName 。このコマンドを使用すると、現在のバッファの名前を変更できます。バッファにファイルの内容が含まれている場合、ファイルの名前は変更されません。これは、複数のシェルが必要な場合に役立ちます。 M-xシェルと入力した場合 開いているものがあれば、既存のものが表示されます。 * shell *バッファの名前を変更して、さらにシェルを開きます。 Emacsにもeshellとtermがありますが、これは現在の範囲を超えています。

結論

この記事は、Emacsの非常に短くて簡単な紹介です。基本的なEmacsコマンド/キーバインディングと、Emacsでの編集に関するいくつかの基本的な概念を学びました。

それがあなたのためにできることはもっとたくさんあります。 Emacs統合パッケージ管理システムでインストールできる4000以上のパッケージがあります。それが提供する柔軟性は驚くべきものです。 Emacsはあなたと共に成長し進化します。

Emacsやその他のLinuxのテーマについて詳しくは、Facebookでフォローしてください:EricSimardでLinuxを学ぶ


Linux
  1. Zshの使用を開始する

  2. 例を挙げて説明する初心者向けの20の基本的なLinuxコマンド

  3. LinuxでPostgreSQLを使い始める

  1. lsの使用を開始する

  2. 相互運用性のためのSambaの使用開始

  3. LinuxでSSHを使い始める

  1. GnuCashの使用を開始する

  2. Etcher.ioを使い始める

  3. 正規表現を使い始める