Vim: Открыть все. c и .h во всех подкаталогах - PullRequest
1 голос
/ 07 апреля 2020

Я на Linux. Мне известно об этом аналогичном посте .

У меня есть несколько подкаталогов, например / in c, / libs, / sr c ... и я хотел бы открыть все *. c и все * .h файлы во всех подкаталогах одновременно в одном сеансе Vim.

Чтобы открыть только один вид файлов из всех подкаталогов, это хорошо работает: vim -O2 `find . -name "*.c"` (я обычно использую опцию -O2, но здесь это не важно).

Как я могу расширить выше, чтобы открыть файлы. c и .h во всех каталогах (но без файлов другого типа)?

РЕДАКТИРОВАТЬ: Как подсказывает @phd, этот другой пост показывает, как загрузите все. c и .h изнутри vim . Это хорошо, но я ищу команду оболочки, чтобы открыть сеанс vim со всеми предварительно загруженными файлами, что отличается.

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Попробуйте это:

find . -name "*.c" -o -name "*.h" -exec vim {} \+  

find (1) говорит:

-exec command {} +
  This variant of the -exec action runs the specified command on the 
  selected files, but the command line is built by appending each
  selected file name at the end; the total number of invocations of the
  command will be much less than the number of matched files.

Это означает, что приведенная выше команда выполнит команду vim для найденного файлы таким способом: vim src/file1.c src/file2.c include/file.h.

0 голосов
/ 09 апреля 2020

В bash включите двойную звездочку, чтобы вывести список всех файлов во всех подкаталогах:

shopt -s globstar

Теперь запустите vim со всеми файлами:

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