Làm thế nào để bạn chuyển đổi tất cả văn bản trong Vim sang chữ thường? Nó thậm chí có thể?
Làm thế nào để bạn chuyển đổi tất cả văn bản trong Vim sang chữ thường? Nó thậm chí có thể?
Câu trả lời:
Nếu bạn thực sự có nghĩa là chữ hoa nhỏ , thì không, điều đó là không thể - cũng như không thể chuyển đổi văn bản thành đậm hoặc in nghiêng trong bất kỳ trình soạn thảo văn bản nào (trái ngược với trình xử lý văn bản ). Nếu bạn muốn chuyển đổi văn bản thành chữ thường, hãy tạo một khối trực quan và nhấn u
(hoặc U
để chuyển đổi thành chữ hoa). Tilde ( ~
) trong chế độ lệnh đảo ngược trường hợp của ký tự dưới con trỏ.
Nếu bạn muốn xem tất cả văn bản trong Vim bằng chữ hoa nhỏ, bạn có thể muốn xem guifont
tùy chọn hoặc nhập :set guifont=*
nếu hương vị Vim của bạn hỗ trợ trình chọn phông chữ GUI.
guu
sẽ viết thường một dòng và gu[motion]
sẽ viết thường giá trị văn bản của chuyển động đó. Tương tự như vậy, gUU
và gU[motion]
làm việc theo cách tương tự, chỉ cho chữ hoa.
Tôi giả sử bạn muốn viết thường văn bản. Giải pháp khá đơn giản:
ggVGu
Giải trình:
U
cho chữ hoa (ví dụ ggVGU
)
Tương tự như giải pháp của mangledorf, nhưng ngắn hơn và thân thiện với giáo dân
:%s/.*/\L&/g
:%s/.*/\L&
sẽ đủ (không cần g
cờ kể từ khi .*
chọn toàn bộ dòng)
:%s/./\L&/g
, vì / g / biểu thị một hoạt động mang tính toàn cầu cho dòng. Những gì có được tôi, mặc dù, là &
. Tại sao điều đó là cần thiết?
&
viết tắt của từ này what was matched by the pattern
, vì vậy nó có thể được hiểu như sau: thay thế .*
bằng \Lowercase(what was matched by the pattern)
. Lưu ý rằng kết hợp trên .
toàn cầu chậm hơn so với kết hợp.*
Nhiều cách để nuôi mèo ... đây là cách tôi vừa đăng :
:%s/[A-Z]/\L&/g
Tương tự như vậy đối với chữ hoa:
:%s/[a-z]/\U&/g
Tôi thích cách này vì tôi luôn sử dụng cấu trúc này ( :%s/[pattern]/replace/g
) để nó tự nhiên hơn.
:%s/./\U&/g
cũng hoạt động. Hóa ra nó bỏ qua các con số và các ký tự không phải là bảng chữ cái. Những gì tôi nhận được là &
. Tại sao không đủ \ U (hoặc \ L)? Chúng ta có thể có được một lời giải thích cho điều đó?
&
là một thay thế cho chuỗi phù hợp. Vì vậy, \U&
viết hoa chuỗi phù hợp để nó có thể được sử dụng để thay thế.
Để biết ví dụ và biết thêm thông tin, vui lòng đọc phần này: http://vim.wikia.com/wiki/Switching_case_of_char character
&
. \ L và \ U có ý nghĩa hoàn hảo, nhưng tại sao lại &
cần thiết?
sử dụng ggguG
gg: đi đến dòng đầu tiên. gu: đổi thành chữ thường. G: đi đến dòng cuối cùng.
Thông thường Vu(hoặc VUcho chữ hoa) là đủ để biến toàn bộ dòng thành chữ thường vì Vđã chọn toàn bộ dòng để áp dụng hành động chống lại.
Tilda ( ~) thay đổi trường hợp của chữ cái riêng lẻ , dẫn đến trường hợp lạc đà hoặc tương tự.
Thật tuyệt vời khi Vim có nhiều chế độ khác nhau để đối phó với các dịp khác nhau và cách các chế độ đó được sắp xếp gọn gàng.
Ví dụ: v- chế độ hình ảnh thực và các chế độ khối trực quan liên quan Vvà Ctrl+ Q- (cho phép bạn chọn các khối, một tính năng tuyệt vời mà một số biên tập viên nâng cao khác cũng thường cung cấp bằng cách giữ Altphím và chọn văn bản).
Nếu bạn đang chạy theo hương vị của Unix
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!
chỉ ra một lệnh shell bên ngoài, vì vậy $ man tr
(trái ngược với :help tr
) cho thấy đó tr
là cho translate
.
:%0,$!tr [:upper:] [:lower:]