5

emacsでパスを省略したい。

emacs の標準的な動作は次のとおりです: Cx Cf 次に、ファイルの完全な名前をタイプセットします。例えば

C-x C-f ~/latex/project/style/test.sty

パスをすばやく完成させるために使用できます。

私は 3 つのディレクトリのうち 2 つを頻繁に使用するので、「短縮パス」を指定できないかと考えています。例えば

C-x C-f lstyle/test.sty

~/latex/project/style/test.sty« »で自動的に展開

助けてくれてありがとう!

4

7 に答える 7

3

まだ言及されていませんが、それを行う別の機会です (バニラの Emacs では、Helm や IDO を使用する必要はありません)。ブックマークを使用できます。特にファイルを開く場合はC-x r m、ブックマークを作成し (ブックマークに付ける名前を求めるプロンプトが表示されます)、C-x r b後でそのブックマークを呼び出します (以前にブックマークに付けた名前を求めるプロンプトが表示されます)。

パスの主な用途がファイルを開くことである場合、これにより入力の手間が省けますが、テキストとして挿入する必要がある場合は、省略形は置き換えられません。

あなたが知らなかったら、おそらくもう1つ。パスを入力したら、C-x C-f次を使用できます。

  1. C-x C-fM-pまたはM-n、開いたり開いたりしたファイルの履歴をナビゲートします。

  2. C-x C-fM-r正規表現を使用して履歴を検索します (ただし、1 つの欠点として、正規表現を入力している間は一致するものが表示されません)。

于 2013-09-26T22:28:49.273 に答える
2

標準オプションを使用してくださいdirectory-abbrev-alist。ドキュメント文字列から:

Alist of abbreviations for file directories.
A list of elements of the form (FROM . TO), each meaning to replace
FROM with TO when it appears in a directory name.  This replacement is
done when setting up the default directory of a newly visited file.

FROM is matched against directory names anchored at the first
character, so it should start with a "\\`", or, if directory
names cannot have embedded newlines, with a "^".

FROM and TO should be equivalent names, which refer to the
same directory.  Do not use `~' in the TO strings;
they should be ordinary absolute directory names.

Use this feature when you have directories which you normally refer to
via absolute symbolic links.  Make TO the name of the link, and FROM
the name it is linked to.
于 2013-09-27T00:50:29.447 に答える
2

これを実現する最善の方法は、略語を使用することです。これらは、入力すると何にでも展開される短い単語です (したがって、「/」、スペース、または句読点を押すとすぐに展開が行われます)。

~/.emacs以下をファイルまたはファイルに追加し~/.emacs.d/init.elます (2 番目の方が好みです)。

(setq-default abbrev-mode t)
(define-abbrev global-abbrev-table "lstyle" "~/latex/project/style")

次に、試してみて、「lstyle/」と入力すると、「~/latex/project/style」に展開されます。

于 2013-09-26T19:31:44.107 に答える
1

あなたが求めているものとは正確には異なりますが、recentfmode と一緒にidomode を使用して、最近開いたファイルにすばやくアクセスできます。このコードを初期化ファイルに入れます。

;; ido-mode
(ido-mode t)

;; recent mode
(recentf-mode 1)

;; define a function to use recentf from ido
(defun recentf-ido-find-file ()
  "Open a recent file using IDO mode"
  (interactive)
  (let ((file (ido-completing-read "Recent file: " recentf-list nil t)))
    (when file
      (find-file file))))

(global-set-key (kbd "C-c f") 'recentf-ido-find-file)

次に、 を押すC-c fと、最近使用したファイルをすばやく開くことができます。

于 2013-09-26T19:56:23.857 に答える
0

そのようなものにはいくつかの解決策があります。どちらが好きかを前もって言うのは難しいです。

一般的なアプローチは ido (ここここを参照) を使用することで、他には helm があります。

于 2013-09-26T15:24:13.240 に答える
0

この回答を参照として使用:

(global-set-key (kbd "<f5>") 'lawlist-bookmark)

(defun lawlist-bookmark (choice)
  "Choices for directories and files."
  (interactive "c[d]ropbox | [b]oxsync")
    (cond
     ((eq choice ?d)
      (interactive)
      (counsel-find-file "C:/Users/acer/Dropbox/"))
     ((eq choice ?b)
      (counsel-find-file "C:/Users/acer/Box Sync/"))
     (t (message "Quit"))))

ここは、ミニバッファーでインタラクティブなブラウジングを許可するcounsel-find-file代わりに使用されました。find-file

于 2019-12-24T07:18:06.433 に答える