Vim bỏ qua bí danh


11

Nếu tôi ánh xạ một lệnh trong vim bằng cách sử dụng một cái gì đó như

map <f4> :! pdflatex %<cr>

Vim sẽ bỏ qua bí danh của tôi cho pdflatex (một cái gì đó như bí danh pdflatex = 'pdflatex --temp-dir = Something'). Có thể làm cho vim không bỏ qua nó?


Có thể vỏ vim hoặc shelltype của bạn không khớp với vỏ đăng nhập của bạn?
DaveParillo

Câu trả lời:


16

Vim 'bỏ qua' bí danh của bạn vì vỏ của bạn không ở trong 'tâm trạng' để phân tích cú pháp của bạn .bash_profile/.bashrc(bạn không chỉ định, nơi bí danh của bạn được xác định) bởi vì nó không được bắt đầu như một vỏ đăng nhập / tương tác (đọc ở đây để tìm hiểu thêm về những gì được đọc khi và vì lý do gì).

Vì vậy, bạn có một số tùy chọn:

  1. Đặt mã bạn sử dụng trong pdflatexbí danh của bạn vào một tập lệnh và gọi nó
  2. vimrc : 'set shell=/bin/bash\ -l', đặt bí danh của bạn thành .bash_profile
  3. Gọi shell của bạn là shell tương tác / đăng nhập: :! bash -l -i -e 'pdflatex .'

2
Đăng nhập / không đăng nhập không quan trọng đối với ~/.bashrc- chỉ tương tác / không tương tác.
grawity

bí danh của tôi là trong .bash_profile .. hmm Tôi đã thay đổi câu hỏi một chút. Tôi muốn nó chạy trong vỏ hiện tại. Giải pháp thứ hai của bạn có vẻ 'chấp nhận được' nhất, tuy nhiên, nó làm cho biến% trở nên vô dụng vì việc mở một vỏ mới thường bắt đầu ở thư mục nhà.
vonhogen

Đây là một câu trả lời tuyệt vời và kỹ lưỡng. Cảm ơn!
Abel
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.