タグ付けされた質問 「motion」

5
「forward-word」の単語の先頭で停止する
私はよく、複数の呼び出しとforward-wordそれに続く単一の呼び出しを使用backward-wordして、ポイントを行の単語の先頭に移動します。私forward-wordはvimとは違う方法にw慣れたことはないと思いますし、Emacsを何年も使用した後でも、その違いに慣れることはできません。 forward-word単語を飛び越えず、単語の先頭で停止する代わりに使用できる関数はありますか?繰り返し実行を伴わない、ポイントを前方に移動するときに単語の先頭に移動する他の戦略はありforward-charますか?
17 motion 

3
インデントでナビゲートする
インデントに基づいてファイルの行間を移動したい。ファイルはインデントによって構成されます。前の行よりもインデントされている行は前の行の子であり、前の行と同じインデントを持つ行はその兄弟です。私は主に3つのコマンドを探しています: 次の兄弟、つまり同じインデントを持つ次の行に移動します。インデントの多い行をスキップしますが、インデントの少ない行をスキップしません。 前の兄弟、つまり他の方向に同じものに移動します。 親、つまりインデントの少ない前の行に移動します。 ポイントの列位置は変更しないでください。 これらは、への字下げ構造化データの類似体であるforward-sexp、backward-sexpとbackward-up-listS式構造化データのため。インデントは、HaskellやPythonなどの言語のプログラム構造に対応しています。これらの関数は、このコンテキストでは特に役立ちますが、モード固有のものは探していません(私の主な使用例は、別のファイル形式内の意図構造化データです)。 インデントレベルの色付けは、Up/を使用して手動で移動するのに役立ちますが、Down自動的に何かが必要です。 このスーパーユーザーの質問は似ていますが、要件はより低く、現在、私の要件を満たす答えはありません。

3
Emacsポイント(カーソル)の動きの遅れ
を実行しているときprevious-line、C-pまたは<up>カーソルが問題や遅延なしで行をジャンプします。を実行するときnext-line、C-nまたは<down>カーソルが行を適切にジャンプしますが、大幅に遅れます。下キーを押したままにすると、ポイントが移動するのが見えず、下のどこかに表示されます。Emacsプロファイラーを実行しましたが、犯人はそうですcl-position。うまくいくのは、previous-line文字通りカーソルを動かすだけで、next-line多くの機能を実行するということです。 問題は何ですか?どのように修正できますか?
12 point  motion 


2
キーボードマクロで次の行を処理する方法
以下を使用して、バッファー内の行を結合するキーボードマクロを作成しました。 F3 C-n M-x join-line RET F4。 行が長すぎて折り返され始める場合を除き、正常に機能します。これにより、このマクロはフレームの幅に依存します。next-line次の実際の行に移動するようではなく、現在の行の「ラップ」部分に移動するようです。 その問題を回避する方法は?


3
行末に移動し続ける
キーバインディングのデフォルトはC-a/C-e、行の最初/最後に移動するためのものです。Emacsを次のように動作させるパッケージがあります。 行末でない場合は、行末にC-e移動します。それ以外の場合は、次の行の最後に移動します 行の先頭にいない場合C-aは、行の先頭に移動します。そうでない場合は、次の行の先頭に移動します。 重要なのはC-a/e、指を動かさずにすべての行の先頭/末尾に移動するために、たたき続けるだけC-n/pです。 そして、prefix(C-u)を使用すると、行の最初/最後に反対方向に移動します。

2
現在のカーソル以外のバッファーでカーソルを永続的に移動するにはどうすればよいですか?
注意:`with-current-buffer`と` goto-char`を使用して、ポイントを別のバッファーの末尾に移動する方法は?おそらくこれと同じ質問をしますが、それに与えられた答えは、ここでの私のケースにはすぐには当てはまりません。たとえば、他のバッファにテキストを挿入するなどの答えがあります。ここで私が尋ねる質問はかなり単純で、それに対応する答えも単純であるべきだと思います。 仮定 Emacsフレームは2つのウィンドウに分割され、一方のウィンドウは呼び出されたバッファーを保持し*whatever*、もう一方のウィンドウは標準*scratch*バッファーを保持します。 *whatever*バッファは、数行のテキストが含まれています。 *whatever*バッファ内のカーソルは、そのバッファの先頭(つまり、その(point-min))にあります。 *scratch*バッファが現在のものです。 *scratch*バッファーで次のいずれかを評価した場合、*whatever*バッファー内のカーソルの位置は変更されません。 (with-current-buffer "*whatever*" (goto-char (point-max))) (with-current-buffer "*whatever*" (end-of-buffer)) (save-excursion (set-buffer "*whatever*") (goto-char (point-max))) (save-excursion (set-buffer "*whatever*") (end-of-buffer)) 私は何でも、それを理解(goto-char (point-max))たり(end-of-buffer)しない*whatever*のカーソルの位置が、その後破棄されます。 上記のスニペットを変更して、*whatever*バッファーのカーソルがそのバッファーの末尾に(永続的に)配置されるようにする方法を教えてください。 Emacsのドキュメントを使用してこの質問に自分で回答するにはどうすればよいですか?思いつく限りのことを試しました。 ジュール・タマグナンの明快な答えを読んだ後、私はさらに明確に規定する必要があることに気づきました: 問題のバッファがウィンドウに表示されているかどうかに関係なく機能する解決策を探しています。 I緩衝表示する場合、すべての後、BをウィンドウにW、特定の位置にカーソルを移動Lは、いくつかの他の緩衝視聴C同じウィンドウにWを、そして最終的に指し示すWバッファへ戻るBを、Iは、でカーソルを見ることを期待します私が去ったのと同じ場所L IOW、バッファがウィンドウに関連付けられているかどうかに関係なく、バッファのポイントがどこにあるかを覚えておく方法が必要です。 ターゲットバッファーが現在2つ以上のウィンドウ(W1、W2、W3、...)に表示されている場合はどうですか?このケースには多くの合理的な可能性があります。提案された解決策は、たとえば、カーソルの位置を変更することができます W1、W2、W3、...の間で最近アクティブなウィンドウ 内のすべてのウィンドウW1、W2、W3、...; または などなど (実際には非常にまれであることを期待しているので、私はこのコーナーケースについて強い意見はありません。)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.