Ivyはミニバッファーでコマンドの完了を無効にします


8

ミニバッファーで1つのコマンドのivy補完を無効にできますか?

たとえば、フォルダ〜/ code / study /にいます。検索ファイルを開いてIvyでオートコンプリートすると、

Find file: ~/code/study/

./ 
../ 
[...]

そして私が欲しいのは、1回のジャンプで〜/ other / code / studyに移動することです。オートコンプリートのivyモードがあるので、カーソルを最初の/に移動して、そこにotherと入力することはできません。これは、いくつかの問題を抱えています。このコマンドのために、補完の最初の部分を何らかの方法で編集したり、一時的に補完を無効にしたりできますか?

どうもありがとう!

回答:


12

あなたが探しているのは、ミニバッファにあるC-M-jivy-immediate-done)だと思います。この関数は、Ivyマニュアルで次のように説明されています

他のコマンドと同様に、現在の候補ではなく現在の入力で終了します。

これは、たとえば、find-fileを呼び出して新しいファイルを作成したが、目的の名前が既存のファイルと一致する場合に便利です。その場合、を使用C-j すると既存のファイルが選択されますが、これは目的ではありません。代わりにこのコマンドを使用してください。


しかし、カーソルを〜/ <here> / code / studyに移動して、即時完了を編集および適用するにはどうすればよいですか?
Rafa de Castro

でできるとは思いませんC-M-jが、これは補完を無効にする1つの方法です。
チロシニウム

5

ここで適用されるファイルナビゲーションには複数のアプローチがあります。

あなたの声明を言い換えれば:

〜/ code / studyから〜/ other / code / studyに切り替えます

  1. 最も簡単で一貫性のある:~に切り替えて~/そこから移動します。
  2. ~/code/study現在のEmacsセッションで以前に一度訪問したと仮定します。を押してC-r、以前にアクセスしたすべてのファイルにアクセスします。でファイル部分を消去できますC-k
  3. あなたが持っていると仮定し~/code/study、ブックマークとして、あるいは中recentf。を押しM-o bて、それらの完了を取得します。
  4. diredバッファにいるとし~/code/studyます。を押し0wて現在のパスをコピーします。押すC-x C-f C-y:ミニバッファーでヤンクを編集できます。

編集:もう1つのアプローチ

最新のcommitでは、を押しC-M-o w C-yて、ミニバッファーのフルパスを編集できます。これを頻繁に使用する場合、counsel-find-file-mapこの組み合わせをより短いものにバインドすることができます。


1

DELまたはを入力して、完了時にファイル名ルートを編集できます<backspace>。このようなキーを押すたびに、親ディレクトリに切り替わります。

詳細については、Ivy User Manualの「File Name Completion」を参照してください。特に、スラッシュとチルドの特別な処理に興味があるかもしれません-完了のいずれかの部分で2つのスラッシュを入力すると、ディレクトリがルートディレクトリ(/)に変更され、同様にチルドがホームディレクトリに切り替わります。

カスタマイズ可能な変数も参照してくださいivy-on-del-error-function


その場合、「〜/ code / study」、「〜/ code /」、「〜」の順にコードをバックスペースします。そして、Dropbox / code / studyから始めなければなりませんでした。そのようなコード/研究の繰り返しを避けたいのですが。
Rafa de Castro

0

あなたがそうすれば、あなたはまだデフォルトのfind-file動作を得ることができます

(defun default-find-file ()
  (interactive)
  (exit-minibuffer)
   (let  ((completing-read-function 'completing-read-default))
     (call-interactively 'find-file) ))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.