2

時々、特定のサフィックスを持つファイルと、同じベース名で別のサフィックスを持つファイルを編集します。ベース名は長くて扱いにくいので、既存のファイル名を再利用して別の名前を作成したいと思います。

私が現在行っていることは次のとおりです。

C-x C-b(これにより、バッファ リストが表示されます)

C-x o(今、私はバッファリストにいます)

M-right M-left(ベース名の先頭)

C-space M-right ... M-w(ベース名のコピー)

C-x o(元いた場所に戻る)

...

これを行うには、より標準的な方法が必要です。(私は、適切なコマンドの定義を含む方法には興味がありません。すでにそれらが多すぎます...)


編集:実際、私が望んでいたのは、まさにその名前で何かをすることであり、ほとんどの場合、関連ファイルを作成または読み取ります。@Trey JacksonのC-x C-vものです!

4

2 に答える 2

5

厳密に言えば、このコマンドは、コマンドが必要ない場合でも、必要なことを行います。

(defun copy-base-filename-as-kill ()
  (interactive)
  (let ((filename (buffer-file-name)))
    (when filename
      (kill-new (file-name-nondirectory (file-name-sans-extension filename))))))

しかし、本当にこの名前を使って何か他のことをしているのであれば...おそらくより良い解決策は、他のことをより簡単にすることです.

現在の名前に基づいて新しい名前を作成する場合は、コマンドC-x C-v(aka ) を試してください。M-x find-alternate-file

于 2012-12-12T18:33:05.840 に答える
0

すぐに使えるものはないと思いますが、ちょっとした elisp 関数を次に示します。

(defun copy-buffer-filename ()
  (when (buffer-file-name) 
    (kill-new (file-name-nondirectory (buffer-file-name)))))
于 2012-12-12T18:29:58.367 に答える