Câu trả lời:
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 %:h
nà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.
%
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, h
là đầ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.
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.
set autochdir
để làm cho 'c' key
hiệu lực trong vỏ, vì vậy bạn có thể sử dụng !command args
dưới dir đã thay đổi.
Hãy thử thêm set autochdir
và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ó).
cnoremap cd. lcd %:p:h
và nnoremap ,cd :cd %:p:h<CR>:pwd<CR>
thay vào đó
'c' key
trong trình khám phá tệp netrw để đi kèm với điều này.
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!
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à netrw
sẽ giữ cho thư mục duyệt web giống như thư mục hiện tại.
Thêm điều này vào của tôi .vimrc
sẽ tự động thay đổi dir làm việc của Vim thành tệp hiện tại:
autocmd BufEnter * silent! :lcd%:p:h
set autochdir
cũng vậy :-)