私はEmacsを初めて使っています。私はこれをグーグルで見つけましたが、そこには良い答えはありません。そのうちの1つが Ctrl-n Ctrl-aバックスペース これは機能しますが、愚かです。 1行のブロックを1行にまとめる素早く簡単な方法はありますか?Emacsでは、2行を1つに結合する方法は?
実際には、段落を自動入力するのにEsc-qを使用できますが、UNDOなしで元に戻すにはどうすればよいですか?
私はEmacsを初めて使っています。私はこれをグーグルで見つけましたが、そこには良い答えはありません。そのうちの1つが Ctrl-n Ctrl-aバックスペース これは機能しますが、愚かです。 1行のブロックを1行にまとめる素早く簡単な方法はありますか?Emacsでは、2行を1つに結合する方法は?
実際には、段落を自動入力するのにEsc-qを使用できますが、UNDOなしで元に戻すにはどうすればよいですか?
あなたは一時的にESC-qコマンドを使用する前に、フィル幅を調整する、このための新しいコマンドを定義することができます。
;; -- define a new command to join multiple lines together --
(defun join-lines() (interactive)
(setq fill-column 100000)
(fill-paragraph nil)
(setq fill-column 78)
)
明らかにこれだけ作品、あなたの段落未満100000文字が含まれている場合。
改行を何も置き換えないでください。
M-x join-line
は2行になります。便利なキーストロークにバインドするだけです。
はいです。できます。しかし、それはいくつかの行(3行以上)のブロックには役に立たない。この目的のために有用なコマンドですか? – jcadam
しかし、ブロックの最後の行に行き、M- ^(結合線のキーバインド)を数回押すと、同じ効果が得られます。あなたが参加する数百の行を持っていない限り、私はそれを記入欄のハックよりも好むでしょう。さもなければ、Talが示唆するように、ブロックをマークし、改行(C-Q C-J)を何も置き換えないでください。 – danielpoe
私はM-1にjoin-lineをバインドしようとしました。それはまたうまくいく。あなたが提案したように、ここでは多くのソリューションが目的のために用意されていますので、私はそれらをすべて柔軟な方法で使用しようとします。どうもありがとうございました! – jcadam
置き点と、すべての行がマージされるまで、繰り返し
M-^
を呼び出します。
注:現在結合されているすべての行の間にスペースが1つあります。
通常はM- ^と結びついていますか? – stsquad
stsquad:あなたはMeta + Shift + 6を押す必要があります(Shift + 6はあなたに^を与えます) –
ああ、日々の喜びは私のEmacsfuを改善します。それだけで、私は、別の結合線の機能を持つことに不思議に思うことができます。 –
私は崇高なテキストは、コマンドJとのラインに参加する方法を好きなので、私はそれをこのように実行します。M- ^と組み合わせる
(defun join-lines (arg)
(interactive "p")
(end-of-line)
(delete-char 1)
(delete-horizontal-space)
(insert " "))
Multiple Cursorsは削除されたすべての余分な空白を持つ一つに、選択したすべての行を崩壊します。
1つのラインに崩壊し、複数のカーソルモードを起動し、バッファ全体を選択し、複数のカーソルモードを無効にするには、例えば:
C-x h
M-x mc/edit-lines
M-^
C-g
複数のカーソルが好きです。 – Bae
「どのように私はそれがUNDOせずに元に戻すために得ることができる?」:
(defun toggle-fill-paragraph()
;; Based on http://xahlee.org/emacs/modernization_fill-paragraph.html
"Fill or unfill the current paragraph, depending upon the current line length.
When there is a text selection, act on the region.
See `fill-paragraph' and `fill-region'."
(interactive)
;; We set a property 'currently-filled-p on this command's symbol
;; (i.e. on 'toggle-fill-paragraph), thus avoiding the need to
;; create a variable for remembering the current fill state.
(save-excursion
(let* ((deactivate-mark nil)
(line-length (- (line-end-position) (line-beginning-position)))
(currently-filled (if (eq last-command this-command)
(get this-command 'currently-filled-p)
(< line-length fill-column)))
(fill-column (if currently-filled
most-positive-fixnum
fill-column)))
(if (region-active-p)
(fill-region (region-beginning) (region-end))
(fill-paragraph))
(put this-command 'currently-filled-p (not currently-filled)))))
(global-set-key (kbd "M-q") 'toggle-fill-paragraph)
私は以下の関数を使用して、 'M-J'にバインドします。
(defun concat-lines()
(interactive)
(next-line)
(join-line)
(delete-horizontal-space))
カーソルの位置を保持したい場合は、save-excursionを使用できます。
アイデアのために、私はにバインドします。 –
Ralph
"元に戻す"コマンドは通常、C-_(コントロールアンダースコア)にバインドされています... – dmckee
通常はC-e C-d – sharjeel