8

いくつかの異なる (Windows) コンピューターでサム ドライブから使用する emacs のコピーを持っていますが、emacs 内で bash エイリアスまたはシンボリック リンクに相当するものを作成できるかどうか疑問に思っています。find-file 内で使用できるものは、私が探している主なものです。たとえば、C-f <some link>どこかに連れて行ってくれます。現在、新しいコンピューターにアクセスするたびに新しいdefunを追加する必要があります.

私が今持っているのは次のようなものです:

(defun go-awesome ()
   "Find my way to my work home"
   (interactive)
   (find-file "c:/cygwin/home/awesome"))

しかし、それは、私が半定期的にアクセスするファイルにアクセスするだけでかなりハックにアクセスするだけで、信じられないほどやり過ぎでハックだと感じます。また、新しいファイルを設定するには多くの労力が必要です。

ただし、私の意見では、それが私のワークフローに合わないことが最大の問題です。C-x C-fファイルにアクセスしたいときはいつもC-g M-x go-awesome. ln -s /some/awesome/dirおそらく、OSに組み込まれているのではなく、emacsの内部に相当する何かを実行できるようにしたいと言った方が明確になるでしょうC-x C-f ~/awesome/some/sub/dir

4

7 に答える 7

12

何を求めているのかよくわかりません。よく使用するファイルを .emacs のレジスタに保存します。

(set-register ?c '(file . "c:/data/common.txt"))
(set-register ?f '(file . "c:/data/frequent.txt"))

jump-to-register次に、 ( C-x r j)でファイルにジャンプできます。

たとえば、「C-x r j c」はc:/data/common.txt(必要に応じて読み込みます) に移動します。

それはあなたが探しているものですか?

于 2008-10-06T21:05:56.260 に答える
2

これがあなたが必要とするものです -

  • 再訪したいコンテキストに対応するブックマークを定義します。Bookmark+では、これは単なるファイルである必要はありません。また、Emacs デスクトップ全体、またはマーキング (保存済み) を含む Dired バッファ、その他のブックマークのセットなどにすることもできます。

  • Bookmark+と一緒にIciclesを使用します。etc を使用してファイルを訪問するときはいつでも、ファイルまたはディレクトリのブックマークを訪問することもできます(ブックマーク名に対して完全です)。ファイル名補完のミニバッファーにいるときに押す だけです。C-x C-fC-x m

于 2011-11-02T16:54:03.380 に答える
2

関数のエイリアスが必要な場合は、次を使用しますdefalias

(defalias 'nuke 'delete-trailing-whitespace)

しかし、Emacs の関数名が長すぎると不満がある場合は、partial-completion-mode. それをオンにすると、

M-x d-t-w [RET]

実行されますdelete-trailing-whitespace

于 2008-10-07T05:59:31.203 に答える
0

私はこの設定を以下に持っています。たとえば、デスクトップ(D:/ Desktop)でファイルを検索する場合は、F3 j F3と入力すると、どのパスから始めても、ミニバッファーに「D:\ Desktop\"andI」と表示されます。 mデスクトップで任意のファイル名を入力する準備ができました。ショートカットをj、k、l、ib / cに設定しました。これらは左手の位置に近いものですが、この設定では、4文字までのショートカットが機能します。したがって、「awsome」ファイルに「awe」などのエントリを追加し、F3 aweF3enterと入力してファイルにアクセスできます。これがあなたが探しているものであるかどうかわからない。しかし、これは私に多くのタイピングを節約します;)

(global-set-key [f3] 'ffap)

;comcplete shortcut in minibuffer
(define-key minibuffer-local-completion-map (kbd "<f3>")
                      'complete-minibuffer-path) 

(defun complete-minibuffer-path ()
  "Extension to the complete word facility of the minibuffer by
replacing matching strings to a specific path"
  (interactive)
  (setq found t)
  (cond
     ; just add new entries if needed; shortcut up to 4 letters will work
     ((looking-back "j" 5 nil) (setq directory "D:/Desktop/"))
     ((looking-back "k" 5 nil) (setq directory "D:/Documents/"))
     ((looking-back "l" 5 nil) (setq directory home-dir))
     ((looking-back "i" 5 nil) (setq directory "D:/Programs/"))
     (t (setq found nil)))
  (cond (found (beginning-of-line)
                (kill-line)
                (insert directory))
         (t (minibuffer-complete)))) 
于 2008-12-13T18:26:29.673 に答える
0

私が望むのは、キーボードマクロを定義できるコマンドだけで特定のファイルを開くことです。このマクロはファイル ~/.bashrc を開きます

 C-x( # start defining the macro
 C-x C-f ~/.bashrc   
 C-x )  # end definition

次に、このマクロに名前を付けることができます

M-x name-last-kbd-macro
visitbashrc   #give it a name

次に、名前で呼び出すことができます Mx visitbashrc

たとえば、このファイルにアクセスして定義を挿入することにより、定義をファイル .emacs に保存できます。

M-x insert-kbd-macro
于 2008-10-14T09:22:52.183 に答える
0

このブログ エントリは、私が望んでいたものをほぼ正確に$定義しています。ファイルのブックマークを指定すると、ディレクトリではなくファイルに移動するように微調整するかもしれませんが、特にブックマークのファイルがとにかくリストの一番上にある傾向があることを考えると、それは問題です。

于 2009-12-19T22:13:09.580 に答える
-1

これを元の質問に移動しましたが、人々がすでに回答したため、ここに残します

それは私が持っているものよりもはるかに優れていますが、おそらく存在するように感じるのは、たとえば次のようなものです。

(defun nuke ()
   "alias delete-trailing-whitespace"
   (interactive)
   (delete-trailing-whitespace))

そしてハックが少なくなり、本当に軽いはずの何かのために本当に重いことをするのではなく、実際にやるべきことをしているように感じます.

それは理にかなっていますか?

ただし、レジスタへの割り当ては、実際には私が探しているものよりも優れている可能性があります。

于 2008-10-07T05:29:41.873 に答える