Эквивалент GUI "Quick Open" в Emacs на CLI? - PullRequest
4 голосов
/ 11 сентября 2011

Название, вероятно, недостаточно хорошо описывает этот вопрос. Многие редакторы на основе графического интерфейса позволяют вам нажимать комбинацию клавиш, а затем начинать вводить имя файла (в любом месте, в любом каталоге), и по мере того, как вы печатаете, список фильтруется по всем файлам, соответствующим этому шаблону, в режиме реального времени. Если вы нажмете клавишу ввода, будет открыт текущий выделенный файл или, если вы нажмете стрелки ВВЕРХ или ВНИЗ, вы можете изменить выбор. Например, в TextMate и Sublime Text 2 (в OS X) это достигается нажатием CMD + T.

enter image description here

Теперь я знаю о find-dired и find-grep в Emacs, но есть ли что-нибудь еще, что немного более мгновенно? Раздражает Dired то, что вы должны нажать Enter и выполнить поиск, чтобы увидеть, правильно ли указано имя файла. Это нормально, если вы знаете имя файла, но не очень хорошо, когда вы идете на основе образованных догадок. Кажется, что-то, для чего может подойти emacs. Установите каталог на индекс (только один раз), затем при поиске отфильтруйте индекс, используя поиск по дереву Radix или что-то подобное, используя разделенное окно для отображения файлов и реагируя на стрелки ВВЕРХ и ВНИЗ, чтобы отрегулировать выбор.

Что-нибудь там? :)

Ответы [ 6 ]

7 голосов
/ 11 сентября 2011

Идо-режим идеально подходит для этого. Он имеет множество полезных приложений, включая нечеткое сопоставление имен файлов, как вы продемонстрировали на своей картинке.

ido-mode работает в моем emacs http://img694.imageshack.us/img694/8519/bildschirmfoto20110911uyu.png

Некоторые вещи для начала:

1 голос
/ 11 сентября 2011

Anything.el делает это с файлами, и это может сделать намного больше. Вот хорошее введение о том, как его использовать.

0 голосов
/ 11 сентября 2013

Я нашел его там, где не хотел :( ...

Плагин, называемый "Control-P" для vim - обеспечивает ту же функциональность, которую ищет автор вопроса.

Например - в этом видео - http://www.youtube.com/watch?v=YhqsjUUHj6g - перейдите к 26:55, и там вы найдете быстрый и очень чистый пример этого. Итак, с помощью одной команды вы указываете на корень документа, а после этого - все хорошо :) ...

0 голосов
/ 11 сентября 2013

К сожалению, ни один из этих способов не работает одинаково: D ... Я давно использовал "Sublime text 2" TOO ... и вчера решил попробовать использовать "emacs" ("vim" очень неудобно).Итак, я хотел эту функциональность:

  1. Вы указываете на корневую папку проекта.

И вуаля - у вас есть функция «быстрого поиска».

Но ... такой функциональности нет :( ...

(например, «найти-файл-в-проекте» - требуется настроить «файл» вкорневой каталог проекта, поэтому он будет знать, что это корень вашего проекта ... но что, если мне придется работать над несколькими проектами одновременно? ... некоторые из них - используют git, некоторые - SVN, а некоторыеиз них - ни один из этих ...: D ... "Превосходный текст" обрабатывает эту ситуацию на лету ... но emacs и vim - нет :( ...)

Все еще ждутответ хотя ...

0 голосов
/ 30 апреля 2012

peepopen также предоставляет эту функцию

0 голосов
/ 12 сентября 2011

ido-mode хорош сам по себе, но вы можете найти подобные Найти файл в проекте лучший вариант для сопоставления шаблонов имен файлов в любом месте дерева каталогов.

M-x find-file-in-project RET автоматически выбирает корень дерева каталогов (на основе файла локальных переменных каталогов).

Я только сейчас замечаю, что Mx ffip-find-file-in-dirtree RET , который у меня также есть в наличии (и который работает с произвольно заданными деревьями каталогов, независимо от файлов проекта) на самом деле предоставлено ffip.el, включенным в nxhtml.

Последний также выглядит так, как будто он поддерживает ido, когда он включен. (На самом деле, есть ошибка, но измените (if (memq ido-mode '(file 'both)) на (if (memq ido-mode (list 'file 'both)) в (defun ffip-find-file-in-project (file) ...)

Несомненно, будет доступно множество аналогичных опций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...