Створити новий файл у каталозі відкритого файлу у vim?


93

Я опинився в тому положенні, коли хочу створити новий файл у тому ж каталозі, що і той, в якому знаходиться відкритий файл. Як створити новий файл у каталозі відкритого файлу у vim? Крім того, чи є місце, де я можу навчитися цим самостійно? Гуглиння не допомогло.


Ви говорите про vim, текстовий редактор на Linux?
ianaz

Відповіді:


173

Усередині Vim створюються нові файли, як і редагування існуючих, за допомогою команд типу :edit filenameor :split filename. Щоб зберегти їх на диску, потрібно (додатково ввести вміст і) зберегти їх через :write.

Як і в командному рядку, Vim має поняття поточного каталогу ( :pwdперераховує його). Всі шляхи до файлів відносно нього. Вам не потрібно дублювати шлях до вашого поточного файлу, для них є кілька приємних ярликів: %посилається на поточний файл, :hє модифікатором його каталогу, мінус ім'я файлу (cp. :help filename-modifiers). Тому,

:e %:h/filename
:w

створить новий файл із іменем filenameу тому ж каталозі, що і поточно відкритий файл, і запише його.

Крім того, деякі люди, як Vim, завжди змінюють каталог поточного файлу. Це можна налаштувати, розмістивши

:set autochdir

у свій ~/.vimrcфайл (який читається під час запуску Vim). Тоді вище стає просто

:e filename
:w

Нарешті, у Vim чудово вбудовано :help. Навчіться орієнтуватися та шукати його!


2
autochdirце, на жаль, розшарування, і я виявив, що не можу від нього залежати. Натомість я помістив autocmd у свій vimrc:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
dash-tom-bang

1
Dawg також хотів би проголосувати за вашу відповідь, але Dawg не має необхідного представника. Дякуємо за добре написане пояснення!
Dawg

14

ви повинні спробувати з плагіном "nerdtree". У вікні nerdtree ви ввели клавішу m, і вибір операції з файлом відобразиться вам


11

Якщо ви хочете створити новий файл, а також показати його у вікні поруч із поточним файлом, ви можете спробувати це:

:vsp newfile

Це vspозначає vertical split, і він розбиває екран навпіл, один показує ваш поточний файл, інший показує ваш новий файл (також працює з просто sp, що є горизонтальним розбиттям).

Відповідно до коментаря @ MartinLyne вище, це створить файл у каталозі файлу, в якому ви відкрили vim. Для цього ви можете змінити поточний робочий каталог наступним чином:

:cd %:p:h

Ця команда змінює поточний робочий каталог на каталог активного файлу, що означає, що запуск vspкоманди (або будь-якої з наведених вище команд) створить файл у цьому каталозі.


2

Коли ви відкрили vim у неіснуючому місці, наприклад $ vim /etc/<some_folder/<next_folder>/file.cfg

потім, щоб створити новий каталог, перебуваючи всередині vim, просто запустіть у звичайному режимі, :! mkdir -p /etc/<some_folder/<next_folder>а потім збережіть документ як зазвичай :w :x ZZ(що завгодно)

Це воно


1

Це для Гвіма! Введіть це, щоб побачити поточний каталог.

:cd

потім змініть його на

:cd desktop/somefolder

потім збережіть або створіть там новий файл

:enew asd.cpp

тепер знову подивіться файл

:cd

0

Я досить запізнився на вечірку, але інший варіант - відкрити NERDtree за допомогою :Eабо :Explore(або його альтернативних варіантів розділення :Vexplore/ :Sexplore== :Vex/ :Sex).

У NerdTree ви можете створити новий файл за допомогою %і ввести ім'я. Він автоматично відкриє файл і створить його після :w/ збереження.

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