Làm thế nào để đặt thư mục làm việc / hiện tại trong Vim?


109

Vì vậy, khi tôi muốn tạo một tệp mới bằng cách sử dụng lệnh: e, tôi không muốn chỉ định toàn bộ đường dẫn, chỉ cần tên tệp mới. Nó có thể được thực hiện?

Câu trả lời:


144

Như đã được đề xuất, bạn có thể sử dụng autochdir, nó sẽ thay đổi thành thư mục của tệp bạn đã mở, tùy chọn khác là

:cd mydirectory

sẽ thay đổi thư mục. Đây có thể là một đường dẫn tuyệt đối hoặc tương đối, do đó :cd ..sẽ tăng lên một cấp. Hoặc bạn có thể sử dụng tùy chọn :cd %:hnày cũng sẽ thay đổi thành thư mục chứa tệp hiện tại nhưng không cần thiết lập autochdir.

:cd

sẽ thay đổi thư mục thành thư mục chính của bạn (hoặc trên windows, in thư mục hiện tại).

:cd -

sẽ thay đổi thư mục thành thư mục trước đó bạn đã truy cập.


13
nếu bạn đang sử dụng nhiều cửa sổ, bạn thậm chí có thể sử dụng: lcd để chỉ thay đổi thư mục cho cửa sổ hiện tại.
Vô ích

1
@Useless: thú vị ... Tôi không nghĩ mình sẽ muốn điều đó, nhưng tôi cho rằng đó là vấn đề của sở thích. Cảm ơn bạn về thông tin.
falstro

3
Tôi đang cố gắng tìm hiểu%: h có nghĩa là gì, có giúp được gì không?
Michael

10
@Michael %dịch sang tên tệp hiện tại bao gồm đường dẫn, :thêm công cụ sửa đổi, hlà đầu, tức là đường dẫn đến dấu phân cách đường dẫn cuối cùng, không loại trừ chính tên tệp.
falstro

@falstro, bạn có biết làm thế nào không: lệnh cd có thể áp dụng cho tất cả các cửa sổ trong cùng một phiên bản vim đang chạy? Ví dụ: khi sử dụng split: sp
mgouin

15

Ngoài ra, nếu bạn đang duyệt hệ thống tệp bằng trình khám phá tệp netrw, bạn có thể đặt thư mục hiện tại bằng cách nhấn phím c.


cũng sử dụng set autochdirđể làm cho 'c' keyhiệu lực trong vỏ, vì vậy bạn có thể sử dụng !command args dưới dir đã thay đổi.
pimgeek

9

Hãy thử thêm set autochdirvào của bạn .vimrc. Nếu bạn chỉ muốn thay đổi nó một lần, hãy sử dụng :cd(hoặc :cd!buộc nó).


1
trợ giúp cho biết điều này làm hỏng một số plugin (tôi không biết cái nào) vì vậy tôi đã đề phòng việc thêm ánh xạ trong .vimrc: cnoremap cd. lcd %:p:hnnoremap ,cd :cd %:p:h<CR>:pwd<CR>thay vào đó
ErichBSchulz

cũng sử dụng 'c' keytrong trình khám phá tệp netrw để đi kèm với điều này.
pimgeek

3

Tôi không biết có gì sai với vim. Tôi muốn thư mục nơi tôi khởi động vim như hiện tại.

Tôi đã làm theo mẹo về autochd ở trên và đặt nó thành noautcd trong .vimrc của tôi.

Tôi vẫn chưa làm điều đó, nhưng tôi sắp bắt đầu vim như thế này từ bây giờ:

vim —cmd 'cd `pwd`'

Điều đó sẽ làm cho nó dính vào thư mục hiện tại!


2

Với netrw:ngoài việc nhấn cchìa khóa để thiết lập thư mục hiện hành, bạn cũng có thể đặt:

let g:netrw_keepdir= 0

trong của bạn .vimrc; điều này có nghĩa là netrwsẽ giữ cho thư mục duyệt web giống như thư mục hiện tại.


Điều này dường như có một hành vi tương đương như: lcd cho mỗi lần thay đổi thư mục netrw. Bạn có ý tưởng làm thế nào cài đặt này có thể tương đương như: cd thay thế (thay đổi dir cho tất cả các cửa sổ)? Cảm ơn!
mgouin

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.