Emacs відкриває файли зі списку імен файлів


4

У мене є великий проект, який розділений на кілька текстових файлів. Кожного разу, коли я хочу працювати над ним, я відкриваю emacs і вручну C-x C-f всі файли, на яких я хочу працювати.

Мені було цікаво, чи є спосіб відкрити файли (з командного рядка) з файлу, що містить список назв файлів, щось подібне

filelist.txt:

file1.tex file2.tex file3.tex

потім зробіть

cat files | emacs -nw

за винятком того, що emacs не підтримує команду, яка використовується, оскільки не подобається, що stdin перепризначено.

якісь ідеї?


1
Перевіряти клієнт emacs так що ви не запускаєте новий emacs щоразу, а просто відкриваєте файли у вже запущених emacs.
Tom

Відповіді:


4

Замість цього передайте його через xargs:

cat files | xargs emacs

xargs приймає текст з stdin і передає його як аргументи вказаній програмі. Трубопроводи files файл в це викликає виклик emacs щось подібне:

emacs file1.tex file2.tex file3.tex

4

Альтернативою пропозиціям Collin Hockey є використання заміни команд у вашій оболонці. У Bourne працюють такі синтаксиси, як оболонки ( sh, bash, zsh & amp; c.).

emacs $( cat files )

або еквівалентно (але менш читабельно і неоднозначно)

emacs ` cat files `

Тим не менш, це не елегантне рішення. Я взагалі не є emacs користувач, але я думаю, що деякі з відповідей тут може бути те, що ви дійсно хочете. Гляньте!

PS
Ні моє, ні рішення Collin не працюватимуть належним чином, якщо список назв файлів довше getconf ARG_MAX байтів. У моїй системі це приблизно 2 Мб.


1

Це дійсно не вирішить вашу проблему, але стане потенційною альтернативою. Перевіряти desktop-save-mode Якщо у вас є відкриті деякі буфери, коли ви закриваєте emacs, при повторному відкритті emacs він відкриє всі буфери, які ви мали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.