質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

1回答

305閲覧

atom カーソルより後ろを削除させる方法はあるか

退会済みユーザー

退会済みユーザー

総合スコア0

0グッド

0クリップ

投稿2018/05/23 23:48

少し前からatomに乗り換えた者です。だいたいの機能は快適に使えているのですが、カーソルの後ろから論理行末まで削除するという操作ができなくて困っています。
調べた限りそういうショートカットなどは見つけられませんでした。

これまで非常によく使っていた操作なので、そこだけはなんとかしたいと思っています。
それを実現できる操作はあるでしょうか。
または、プラグイン、あるいは、自作する方法はあるでしょうか。

教えていただけると助かります。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

"Cut To End Of Buffer Line" (正確には論理行末までをカット)というコマンドがこれに当たると思いますが、Packages → Command Palette → Toggle から見てみると、デフォルトではキーバインディングが設定されていないようです。

default
なのでユーザーのキーバインド設定ファイル keymap.cson に使用したいキーバインド設定を書いてやります。例えば Alt-Command-kで実行させたい場合はこのようになります。

'atom-text-editor': 'alt-cmd-k': 'editor:cut-to-end-of-buffer-line'

Atom を再起動させて、Packages → Command Palette → Toggle から確認してみると、キーバインディングが追加されていることがわかります。設定した通り実行できれば OK です。

after-add-keybind

追記

どうしても行末までをカットではなく、行末までを削除するコマンドが必要ということでしたら、init.coffee に新しいコマンドとして書いてしまうという方法もあります。
例えば Macの場合だと、~/.atom/init.coffee(メニューからだと、Atom → Init Script...)に以下のように記述します。
追加するコマンドは、"Delete To End Of Buffer Line" としてあります。

CoffeeScript

1atom.commands.add 'atom-text-editor', 'editor:delete-to-end-of-buffer-line', -> 2 textEditor = atom.workspace.getActiveTextEditor() 3 cursorPosition = textEditor.getCursorBufferPosition() 4 endColumn = textEditor.lineTextForBufferRow(cursorPosition.row).length 5 endPosition = cursorPosition.translate([0, endColumn - cursorPosition.column]) 6 selectionToDelete = textEditor.selectToBufferPosition(endPosition) 7 textEditor.delete(selectionToDelete)

このコマンドに割り当てるキーバインドを設定します。

CSON

1'atom-text-editor': 2 'alt-shift-k': 'editor:delete-to-end-of-buffer-line'

Command Palette から存在を確認して、実行されるか確認します。

new_command
参考:
Move to beginning of line - support - Atom Discussion

投稿2018/05/24 08:59

編集2018/05/30 09:48
fiwa

総合スコア1192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/05/28 23:57

お返事遅くなり申し訳ありません。ありがとうございます!
退会済みユーザー

退会済みユーザー

2018/05/29 00:05 編集

windowsで ctrl+deleteをあてたいと思っているのですが、やってみたところ、キーが重複しているというエラーが表示されます。デフォルトの単語消去を無効化する必要があるのかと思うのですが、これはどのようにすればよいのでしょうか。よければご指導下さい。 →半分自己解決です。これについては 'atom-workspace atom-text-editor': 'ctrl-delete': 'editor:cut-to-end-of-buffer-line' という風にしてみたところ、重複が解消されたように見えました(ただ'atom-text-editor':との関係性が飲み込めていません)
退会済みユーザー

退会済みユーザー

2018/05/29 00:05

たびたびすみません、 このcutはクリップボードにコピーしてしまうようですが、純粋に削除するという処理はないものでしょうか?
fiwa

2018/05/29 09:27

keymap の重複については個人設定の keymap.cson に書いたものが優先されるはずですが、キーが重複しているというエラーが表示された経験がないのでよく知りません(Mac版だから?)。 どの設定が優先されているかは、Packages → Keybinding Resolver → Toggle から調べることができるのと、あと keymap.cson で unset! や abort! とすることで設定を無効にすることもできるようです。 http://goldilocks-engineering.blogspot.jp/2015/07/atom_2.html また私が探してみた限りでは end of buffer までをカットというコマンドだけで、クリップボードに入れずに削除する処理になっているものはなかったようです。emacs の C-k と同じような挙動で、vim の d$ のようにはなっていないと思います。
退会済みユーザー

退会済みユーザー

2018/05/29 22:45

ありがとうございます。思い付きですか、行末まで選択とデリートを連続で実行させるような方法をとれば一応代替するのかもしれないですね。
fiwa

2018/05/30 02:32

Command Palette から "end of buffer" で検索しても、上記 "Cut To End Of Buffer Line" しか出てこないので、デフォルトのコマンドには「論理行末までを選択」する機能のものは用意されていないようです。 回答に「論理行末までを削除」コマンドを追加する方法で追記しました。
退会済みユーザー

退会済みユーザー

2018/06/02 08:37

更にお返事遅くなり申し訳ありません。まさに期待していた通りに動作しました。本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問