• 締切済み

emacsでコピーせずに一行消す方法

表題の件について質問させていただきます。 emacsであらかじめCtrl+kでコピーしたものをどんどんCtrl+yで貼り付けたいと思っております。 途中で一行消そうとCtrl+kをすれば前に保存していた内容が消えてしまうのですが、上書きせずに一行消す方法はありますでしょうか? .emacsで新しいコマンドを登録する必要がある場合、どのように書けばよいでしょうか? ご存知の方おられましたら、ご教授お願いします。

みんなの回答

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.2

> 途中で一行消そうとCtrl+kをすれば前に保存していた内容が消えてしまうのですが、 消えてはいないので、普通に C-y M-y すれば kill-ring のも一つ前の内容が出てきます。もっと前なら更に M-y を続けて。その後は連続で yank したければ C-y だけで OK それも面倒なら以下のコードを .emacs に追加して、キーバインドをお好みで修正すれば、だいたい御希望の動作かと。ちなみに拾い物のコードです。 (defun delete-line (&optional arg) (interactive "P") (progn (kill-line arg) (pop kill-ring) (setq kill-ring-yank-pointer kill-ring))) (global-set-key (kbd "C-x d") 'delete-line)

全文を見る
すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4854/10269)
回答No.1

2つ方法があります。 (1) 別の行を消す時、ctrl-K ではなく DEL とか ctrl-D で1字ずつ消すと記憶されない (2) 別の行を消した後、ctrl-Y で貼り付けた直後にAlt-Yを押すと1つ前にkillしたものがペーストされる。Alt-Yをさらに押せばさらにさかのぼれる >.emacsで新しいコマンドを登録する必要がある場合、どのように書けばよいでしょうか? キーのバインド定義をする方法でしょうか?色々方法があります。 例えば、F2キーに「1つまえにkillしたものをインサートする」を定義するなら、 (global-set-key [f2] (lambda () (interactive) (insert (nth 1 kill-ring)))) .emacsを自分で書くためにはemacs-lisp (elisp) を理解する必要があります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVBAでコピーをしたい

    データベースの内容をExcelのセルへ移すマクロを作成しています。 1行目にはタイトルが入るので、2行目以降に内容をコピーするマクロを組みました。 lngGyo = 1 dbRes.MoveFirst Do Until dbRes.EOF lngGyo = lngGyo + 1 lngCol = 0 For Each dbCol In dbRes.Fields lngCol = lngCol + 1 Cells(lngGyo, lngCol) = dbCol.Value Next dbCol これだと、1件目はちゃんと2行目にコピーされるのですが、2件目以降も2行目にコピーされて上書きされてしまいます。 2件目以降は3行目にコピーする場合どうすればいいのでしょうか?

  • Emacs23の日本語化について教えてください。

    これで3日連続の質問になります。 ご迷惑おかけしてすみません。 Linux歴は長いのですが、スキルは初心者と同等です。 恥ずかしい話ですが、書籍・ネットの内容を何年経っても理解できません。 そこですみませんが質問です。 Emacs23の日本語化について検索しました。 例えば http://www11.atwiki.jp/s-irie/pages/13.html 多分このサイトが一番参考になると思っています。 その内容の中でまず menu-tree-el-0.97.tar.gz をダウンロードしました。 しかし、それ以下の {使い方 menu-tree.el をEmacsのロードパスの通ったディレクトリに保存し、バイトコンパイルします。 .emacsファイルに以下の内容を追加します。 (require 'menu-tree) 文字化けする場合は、menu-tree.elをロードする前にmenu-tree-coding-systemに適当なcoding-systemをセットします。 (if (and (= emacs-major-version 22) (eq window-system 'x)) (setq menu-tree-coding-system 'utf-8)) (require 'menu-tree) 「utf-8」の部分は各自の環境に合わせて設定してください。 } がさっぱり解りません。 ようやく少し「vi」が使えるようになりましたが どこに(require 'menu-tree)を追加するのか解りません。 書籍・ネットの説明でコマンドの先頭に$や#が付いていないと、意味が解りません。 これは、ずっと疑問にしていた事です。 是非教えてください。 「ロードパス」を検索しましたが理解しづらかったです。 力が抜けて「バイトコンパイル」は検索しませんでした。 .emacsファイルは$ findで探せるのでしょうか? ボクは何だかくたびれて自分で頑張らないで ここで質問している気がします。 これは「Emacs23の日本語化について」と 言うよりもLinuxの基本といった感じがします。 「vi」でファイルの内容を変えるのはほぼ理解できました。 「ロードパス」「バイトコンパイル」も難しいですが {.emacsファイルに以下の内容を追加します。 (require 'menu-tree)} どこに追加するのか解りません。 もしかすると疲れて丸投げしているような気がします。 落ち着いて休んだら解るのかも知れません。 許してください。 質問をまとめます。 1.Emacs23の日本語化を具体的に教えてください。 2.よくコマンドの先頭に$や#が付いていないのを  書籍やネットで見ますが、これはどう理解したらいいのでしょうか? 3.熟練者は書籍やネットで見ないコマンドを使います。  こういった方々はどうやって覚えたのでしょうか? 以上です。 度々すみません。 お返事を待っています。

  • EXCElで特定の文字列の行をコピー

    下記のようなシートがあります。 列A~K 行1~80程度 列は変わることがありません。 行はデータ量によって40~80くらいまで変動します。 この中の特定の行をコピーして他のシートにペーストしたいのです。 コピーしたい行のK列は430という数字が入ります。 K列には430以外の数字も入ることがあります。 また、コピーしたい行の範囲は「開始」という文字列から「小計」 と言う文字列の間です。(小計の後の行にも430という数字が出てきます) マクロを使えば出来ると言うことは聞いたのですが、ヘルプを見ても よくわかりません。 わかる方いましたら是非ご教授下さい。

  • 以下の内容でk行目の内容だけ表示させる方法

    以下の内容でk行目の内容だけ表示させる方法 ・k行1列目の値とm行1列目は必ず一緒になりますがS1111とは限りません、そして行としてはランダムに配置される可能性があります ・k行2列目の値とn行2列目は必ず一緒になります、これは必ずH11-Yという名称です、そして行としてはランダムに配置される可能性があります 実際はこの内容がシート1に貼られており、このシート1上でk行目だけ表示させる内容を知りたいです、VBA初心者のため分かりやすく教えていただけるとありがたいです   1列  2列  ~ k行 S1111  H11-Y   ~ m行 S1111 H22-R ~ n行 S2222 H11-Y

  • エクセルのコピー

    エクセルのコピーが何かの拍子で出来なくなりました セル1つの内容をコピーしようとすると出来るのですが (1)そのセルに色がついていても色がコピーされない (2)結合されたセルをコピーした時には、コピー先は結合されない (3)行ごとコピーして、任意の行に”Ctrl””+”をしても  行は増えるが、内容なコピーされない といった形です 計算式等その他の処理はできるのですが、コピーのみおかしな設定に なってしまったので、設定を戻す方法を教えてください 宜しくお願いします

  • コピー、ペーストのショートカットキーを変更したいんですが

    はじめまして。質問よろしくお願いします。 コピーとペーストコマンドは現在は コピー → 「Ctrl」+「C」 ペースト → 「Ctrl」+「V」 なんですが、これを コピー → 「Alt」+「Q」 ペースト → 「Alt」+「W」 でもできるようにすることは可能でしょうか? というのは、「Alt」+「Tab」 でウィンドウを切り替えながらコピペをすることが多いのです。 何卒ご教授お願いいたします。>(´・ω・`)

  • 行をコピーして挿入する際のコピー時点滅をなくしたい

    マクロを勉強し始めたばかりの超初心者ですが、 質問させてください。 添付資料のように飲食店でのクレジットカード支払いの明細書を作成中です。 表のように、カード使用件数が一日に1件ではなく、実際には件数はバラバラです。 予め入力用の行を用意しておくのはスペースが邪魔で消去したりも面倒なので コマンドボタンを利用し、実際にカードを使用した件数に合わせて行を挿入し、入力してゆくようにしました。(コードはネットでなんとか拾ってきました。) 挿入する行は予め入力規則を入れてある、空白の行(ここでは画像には入ってませんが、2行目)をコピーして挿入するようになってます。 以下のマクロを使ってコピー→挿入は出来るのですが、 コピーする際に出てくる点滅が視覚的に邪魔で気になります。 もし消せるようであれば教えてください。 Private Sub CommandButton1_Click() Rows("2:2").Select Selection.Copy insertRow = InputBox("何行目の下に挿入しますか?") + 1 Cells(insertRow, 1).Insert shift:=xlDown Application.CutCopyMode = False Rows(insertRow).Select End Sub ※Application.CutCopyMode = False で、点滅が消えるとかなんとか。。。。見かけて入れてみたのですが、 点滅は変わらず・・・・そもそも用語をそこまでまだ知らないのが問題なのですが。。。 お手数おかけしますが、分かる方おられましたらご教授の程よろしくお願いいたしますm(__)m

  • ORACLEのスキーマーを別のORACLEインスタンスにコピーする方法

    いつもお世話になっています。 表題の件なのですが、ORACLEのスキーマのコピーをおこないたいのですが、方法がわかりません。 いろいろ調べたのですが、テーブル単位のコピーは発見できたのですがスキーマごとというものはみつかりませんでした。 ご存知のかたがいらっしゃったらご教授お願いいたします

  • 「Ctrl]+「C」でのコピー不具合について

    VAIO SZ73B(Vista)を使用しておりますが、 最近 「Ctrl」+「C」を押してもコピーできません。 「Ctrl」+「V」でペーストはできます。 上記コマンドでコピーができるようにするには何をすればよいのでしょうか? PCには疎いので、他にどのようなインフォメーションを提示すればいいのかもわかりません。 お分かりになる方がいらっしゃいましたらご教授願います。 現在はマウス右クリックのコピーで対応しておりますが、なにぶん不憫なもので。 よろしくお願いいたします。

  • excel マクロで行番号の取得方法

    マクロ初心者です どうしてもできません お願いします! 集計合計値が記入されている行を(例えば、(c5:g5))をコピーをしてday関数を使って得たセルの値を取得してその値を行番号にして、例(k□)として貼り付けし、一日づつ(日付どうり)下にずらして貼り付けしていきたいのですがどうしてもできません また この式を利用して 日にちを集計表のファイル名として保存したいと思っています ご教授宜しくお願いします