Làm cách nào để đặt ngôn ngữ giao diện người dùng trong vim?


102

Tôi đã nhìn thấy điều này trên reddit và nó khiến tôi nhớ đến một trong những điều xấu hổ của mình: Nó hiển thị giao diện người dùng bằng tiếng Đức . Chết tiệt, khí lực! Tôi muốn tiếng Anh , nhưng vì hệ điều hành của tôi được thiết lập bằng tiếng Đức (tiêu chuẩn tại văn phòng của chúng tôi), tôi đoán vim thực sự đang cố gắng trở nên hữu ích.

Tôi phải thực hiện những câu thần chú ma thuật nào để có được vim chuyển đổi ngôn ngữ giao diện người dùng? Tôi đã thử sử dụng googling nhiều lần, nhưng dường như không thể tìm thấy câu trả lời (Không, Google, bạn là bạn của tôi * pat *, * pat *, nhưng tôi đã biết cách thay đổi cú pháp tô sáng, cảm ơn bạn!) ...

CHỈNH SỬA: Sử dụng tất cả các mẹo hay bên dưới, tôi đã thêm phần này vào đầu .vimrc(chạy Vim 7.2 trên Windows 7)

set langmenu=en_US.UTF-8    " sets the language of the menu (gvim)
language en                 " sets the language of the messages / ui (vim)

Về phía mình, language en luôn báo lỗi khi khởi động gVim. Tôi đã sử dụng ngôn ngữ C và nó hoạt động như một sự quyến rũ!
ghigad

Câu trả lời:


34

Như Ken lưu ý, bạn muốn các :languagelệnh .

Lưu ý rằng việc đưa cái này vào của bạn .vimrchoặc .gvimrcsẽ không giúp bạn với các menu trong gvim, vì định nghĩa của chúng được tải một lần khi khởi động, rất sớm và không phải đọc lại sau đó. Vì vậy, bạn thực sự cần thiết lập LC_ALL(hoặc cụ thể hơn LC_MESSAGES) trong môi trường của mình - hoặc trên các hệ thống không phải Unixoid (ví dụ: Windows), bạn có thể --cmdchuyển công tắc (thực hiện lệnh đã cho trước, trái ngược với -ctùy chọn):

gvim --cmd "lang en_US"

Như tôi đã đề cập, bạn không cần sử dụng LC_ALL, điều này sẽ buộc chuyển đổi tất cả các khía cạnh của môi trường máy tính của bạn. Bạn có thể làm nhiều thứ hơn. F.ex., cài đặt ngôn ngữ của riêng tôi trông như thế này:

LANG=en_US.utf8
LC_CTYPE=de_DE.utf8
LC_COLLATE=C

Điều này có nghĩa là tôi nhận được một hệ thống chủ yếu là tiếng Anh, nhưng với ngữ nghĩa tiếng Đức cho các chữ cái, ngoại trừ thứ tự sắp xếp mặc định là ASCIIbetical (tức là sắp xếp theo điểm mã, không theo quy ước ngôn ngữ). Bạn có thể sử dụng một biến thể khác; xem man 7 localeđể biết thêm.


1
Tôi sẽ phải kiểm tra thêm điều này - nó hiện không hoạt động AFAIR, nhưng sẽ chỉ có quyền truy cập vào máy được đề cập vào thứ tư tới. Cảm ơn bạn đã trả lời.
Daren Thomas

không hiệu quả với tôi (vim phàn nàn rằng nó không thể tìm thấy en_US ?!) nhưng giải pháp @ August-Lilleaas đã hoạt động!
Stefano

17
Trên Windows 7 Tôi đã phải sử dụnggvim --cmd "lang English_United States"
hfs

2
bạn cũng có thể thêm language messages envào vimrc của mình (lưu ý: nó phải ở ngay từ đầu).
vorou

4
@hfs Rất cám ơn bình luận của bạn. Tôi đã thêm language English_United Statesvào _vimrctệp của mình và nó đã giúp tôi dưới VIM 7.4 và Windows 8.
Artyom

98

Để tham khảo, trong Windows (7), tôi vừa xóa thư mục C:\Program Files (x86)\Vim\vim72\lang. Điều đó làm cho nó trở thành dự phòng cho en_US.


14
Tôi đã đổi thành lang_ori trong trường hợp tôi cần nó sau này.
shin

1
\usr\share\vim\vim80\langdành cho người dùng MinGW hoặc Cygwin trên Windows sẽ giúp
it3xl

@AugustLilleaas Bạn có nghĩ rằng xóa langthư mục là an toàn không?
Danny

38

Hãy thử điều này trong _vimrc. Nó hoạt động với win7 của tôi.

set langmenu=en_US
let $LANG = 'en_US'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

Tương tự ở đây, cái này đã hoạt động. Tôi tin rằng delmenu - menuchu kỳ là rất quan trọng.
ThomasH

18

Đặt dòng mã này ở đầu tệp _vimrc đã lưu lại một ngày của tôi:

set langmenu=en_US.UTF-8

9
Trên thực tế, đó là đặt langmenu = en_US.UTF-8, ít nhất là trên gVim 7.2 của tôi
Rytmis

Công trình như một nét duyên dáng, tất nhiên như Rytmis nói mà không có dấu hai chấm (:)
Piotr Owsiak

lưu ý: điều này sẽ đặt ngôn ngữ của menu, nhưng các tin nhắn, v.v. cần: đặt ngôn ngữ.
Daren Thomas,

Lưu ý rằng bạn có thể làm cho nó dễ dàng hơn bằng cách sử dụng set langmenu=nonethay vì chỉ định ngôn ngữ thực tế (tiếng Anh).
Rabarberski,

11

Điều này hoạt động để thay đổi ngôn ngữ menu của vim

set langmenu=en_US.UTF-8  [or just set langmenu=en for short]

Nhưng

language en 

đã cho tôi một lỗi nóing nó không thể đặt en làm ngôn ngữ nhưng dòng này đã thực hiện công việc

:let $LANG = 'en'

Cái thứ hai đến từ tài liệu của Vim . Tôi đã thêm cả hai dòng vào đầu tệp _vimrc. Tôi sử dụng máy tính Windows 7 64.

PS: dòng này thay đổi cả ngôn ngữ và ngôn ngữ menu

language messages en

Trong tệp .vimrc (hoặc tệp _vimrc nếu bạn đang ở trong windows)


6

Ubuntu 10.10 + VIM 7.2 IM được cung cấp. Mã bên dưới thay đổi ngôn ngữ cho vim console. Thêm nó vào đầu vim.rc của bạn

if has('unix')
    language messages C
else
    language messages en
endif

4

Hai dòng này ở đầu tệp .vimrc của bạn sẽ thực hiện công việc:

let $LANG = 'en'
set langmenu=none

3

Bắt đầu vim với một ngôn ngữ đã thay đổi:

LC_ALL=en_GB.utf-8 vim

Hoặc xuất biến đó theo mặc định trong bashrc / profile của bạn.


3

:Ngôn ngữ Trợ giúp

: ngôn ngữ fr_FR.ISO_8859-1


3

Việc thêm cái này vào _vimrc phù hợp với tôi trong windows 8:

set langmenu=en_US
let $LANG = 'en_US'

(lưu ý rằng _vimrc nằm trong cùng một thư mục chứa vim74 dir của tôi, đó là tệp _vimrc mà vim đọc khi khởi động)


1

Tôi không biết tại sao tất cả các câu trả lời trên không hiệu quả với tôi. Tôi tiếp tục nhận được lỗi về các ngôn ngữ không tồn tại. Có thể đó là một thứ của Windows. Bằng mọi giá, giải pháp của tôi là thêm cái này vào vimrc của tôi: let $ LANG = 'en'

Ah, tôi đã nói quá sớm. Các menu của gVim vẫn bằng tiếng Nhật, nhưng màn hình giới thiệu bằng tiếng Anh.


1

Windows - Hai Vim

Không có gì từ đây đã giúp tôi cho đến khi tôi nhận ra rằng tôi có 2 Vim.

  1. Git Bash qua MinGW (Cygwin, mintty)
  2. Một cài đặt riêng trong Tệp chương trình trên Windows

Lệnh tiếp theo sẽ lọc cho bạn tất cả các tệp vimrc đã xem và vị trí của chúng.

vim --version | grep vimrc
  • _vimrc (Windows & CMD)
  • .vimrc (Bash cho Git)
  • vimrc (có các vị trí khác nhau cho cả hai)

1: Vim trên Windows & CMD

Chỉ đổi tên (xóa) của thư mục lang đã giúp tôi.

bạn có thể tìm thấy nó ở đây C:\Program Files (x86)\Vim\vim80\lang

Tôi đã thử tất cả các cài đặt cấu hình được liệt kê ở đây. Nó vô ích.

2.1: Git Bash thông qua MinGW, Cygwin, mintty

Đối với Git Bash, tôi đã thêm vào language messages en_USở đầuC:\Program Files\Git\etc\vimrc

Tất nhiên nếu bạn muốn xóa thư mục lang, bạn có thể tìm thấy nó ở đây

  • C:\Program Files\Git\usr\share\vim\vim80\lang
  • C:\Users\User_name_xxx\AppData\Local\Programs\Git\usr\share\vim\vim80\lang để cài đặt người dùng cục bộ.

2.2: Chỉ điều chỉnh Git's Bash (MinGW64, Cygwin, mintty)

Cuối cùng, đối với Bash trên Windows, tôi đã chọn bỏ qua các thao tác với vimrc

Tôi đã mở C:\Program Files\Git\etc\bash.bashrc và thêm dòng tiếp theo

LANG='en_US'

hoặc là

LANG=C

nhưng không sử dụng en_US.UTF-8vì nó tạo ra các ký tự kỳ lạ cho một số lệnh bash. Ví dụ trong `` find 'xxx_yyy_zzz_aaa.bbbddd' cho tệp không tồn tại.


1

Hãy thử thêm cái này vào _vimrc : của bạn

let $LANG='en_US'


0

Nếu bạn đang sử dụng Windows và không muốn bị làm phiền khi ra lệnh

Để ngăn GUI tải các tệp bản địa hóa

Chỉ cần truy cập Program Files\Vim\vim80\langvà đặt dấu gạch dưới làm tiền tố trước tất cả các tệp trông giống như chúng có liên quan đến ngôn ngữ của bạn.

Để ngăn chính VIM tải các tệp bản địa hóa

Trong cùng một thư mục như trên, tiền tố với dấu gạch dưới thư mục có tên mã quốc gia của bạn.

Lưu ý : Windows 10 có thể sẽ yêu cầu đặc quyền của Quản trị viên bằng cách đưa ra cảnh báo UAC.

Nhân tiện

Kỹ thuật tương tự này có thể được áp dụng cho rất nhiều công cụ Unix / Linux được chuyển trên Windows và nói chung là tất cả các gói phần mềm nơi các tệp bản địa hóa có thể dễ dàng được truy cập. Nếu bạn đổi tên chúng để ngăn ứng dụng tìm thấy chúng, ngôn ngữ dự phòng có thể sẽ là tiếng Anh.

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.