2013-05-22 2 views
0

Я ищу способ открыть панель (дерево каталогов) файлов/папок в Emacs в операционной системе OSX и выбрать любой файл из списка для вставки в позицию курсора в текущем буфере. Cx i требует, чтобы я знал имя точного имени/пути файла, что означает, что я должен сначала посетить этот файл, открыть его и запустить функцию определения пути/имени файла, затем скопировать этот путь/имя файла и вернуться к исходный буфер, а затем запустить Cx i, удалить путь выборки, который есть, и вставить правильный путь/имя файла и нажать return. В качестве альтернативы, мне придется использовать другую программу, чтобы получить имя файла/путь, а затем выполнить те же заключительные шаги.Открыть панель (файлы/папки) и вставить файл в позицию курсора

Я заканчиваю писать свой собственный плагин для Sublime Text 2, используя python open(self.template_path).read(), однако для этого мне потребовалось пару дней. Кто-нибудь знает пример defun, который откроет панель (из папок/файлов), чтобы вставить файл в позицию курсора, или, возможно, что-то похожее на пример python open.read, который можно изменить, чтобы вставить файл, открыв панель?

insert_file http://www.lawlist.com/images/insert_file.png

+0

'C-x i' имеет завершение имени файла. Это означает, что вы можете использовать то же самое нажатие клавиш, чтобы вставить файл, чтобы посетить его с помощью 'C-x C-f'. Не нужно сначала посещать его. – Tyler

+0

Я ищу вариант с открытой панелью, пожалуйста, который отображает каталог всех папок/файлов в любом месте на компьютере. Как только дерево каталогов папок/файлов открыто, пользователь может перемещаться с помощью клавиш со стрелками для выбора файла. Emacs, построенный из источника '--with-ns' на OSX, имеет возможность открывать и сохранять файлы, перемещаясь по дереву каталогов папок/файлов. Я хотел бы создать эквивалент для файла вставки - у меня есть слишком много папок и файлов, чтобы попытаться угадать имя или использовать автозаполнение. – lawlist

ответ

1

ли вы имеете в виду что-то вроде

(defun insert-file-from-osx-panel() 
    (interactive) 
    (let ((file-name (ns-read-file-name "Select File to Insert" nil t))) 
    (and file-name (insert-file file-name)))) 

?

+0

ДА !!!!! ИДЕАЛЬНО! Спасибо вам большое! – lawlist

Смежные вопросы