Những thay đổi gần đây trong tài liệu đề cập đến một cách khác để loại bỏ tùy chọn mặc định cho less
("tùy chọn mặc định" FRSX
).
Đối với câu hỏi này, đây sẽ là (git 1.8+)
git config --global --replace-all core.pager 'less -+F -+X'
Ví dụ, Dirk Bester gợi ý trong các bình luận :
export LESS="$LESS -FRXK"
để tôi có được màu khác với Ctrl-Cthoát khỏi less
.
Wilson F đề cập trong các ý kiến và trong câu hỏi của mình rằng:
ít hỗ trợ cuộn ngang, do đó, khi các dòng bị cắt nhỏ, ít vô hiệu hóa thoát khỏi màn hình để người dùng vẫn có thể cuộn văn bản sang trái để xem những gì đã bị cắt.
Những sửa đổi đó đã được hiển thị trong git 1.8.x, như được minh họa trong " Luôn sử dụng máy nhắn tin chogit diff
" (xem các bình luận). Nhưng tài liệu vừa được điều chỉnh lại ( đối với git 1.8.5 hoặc 1.9, Q4 2013 ).
Trình xem văn bản để sử dụng bởi các lệnh Git (ví dụ: 'less').
Giá trị có nghĩa là được giải thích bởi shell.
Thứ tự ưu tiên là:
- các
$GIT_PAGER
biến môi trường,
- sau đó
core.pager
cấu hình,
- sau đó
$PAGER
,
- và sau đó mặc định được chọn tại thời gian biên dịch (thường là 'ít hơn').
Khi LESS
biến môi trường không được đặt, Git đặt nó thành FRSX
(nếu LESS
biến môi trường được đặt, Git hoàn toàn không thay đổi).
Nếu bạn muốn ghi đè có chọn lọc cài đặt mặc định của Git LESS
, bạn có thể đặt core.pager
thành ví dụless -+S
.
Điều này sẽ được chuyển đến shell bởi Git, nó sẽ dịch lệnh cuối cùng sang LESS=FRSX less -+S
. Môi trường ra lệnh để đặt S
tùy chọn cắt các dòng dài nhưng dòng lệnh đặt lại thành mặc định để gấp các dòng dài.
Xem cam kết 97d01f2a để biết lý do đằng sau từ ngữ tài liệu mới:
cấu hình: viết lại core.pager
tài liệu
Các văn bản đề cập core.pager
và GIT_PAGER
không đưa ra bức tranh tổng thể về quyền ưu tiên. Mượn mô tả tốt hơn từ tài liệu git var
(1) .
Việc sử dụng cơ chế để cho phép các tệp cấu hình trên toàn hệ thống, toàn cầu và trên mỗi kho lưu trữ không bị giới hạn đối với biến cụ thể này. Loại bỏ nó để làm rõ đoạn văn.
Viết lại phần giải thích cách biến môi trường LESS
được đặt thành giá trị mặc định của Git và cách tùy chỉnh có chọn lọc.
Lưu ý: cam kết b327583 ( Matthieu Moymoy
, tháng 4 năm 2014, đối với git 2.0.x / 2.1, quý 3 năm 2014) sẽ xóa S theo mặc định:
máy nhắn tin: xóa 'S' khỏi $ LESS theo mặc định
Theo mặc định, Git được sử dụng để đặt $LESS
thành -FRSX
nếu $LESS
không được người dùng đặt.
Các FRX
cờ thực sự có ý nghĩa đối với Git ( F
và X
vì đôi khi các ống Git đầu ra ít hơn là ngắn và R
vì các ống Git có màu đầu ra).
Mặt khác, S
cờ (chặt các dòng dài) không liên quan đến Git và là vấn đề ưu tiên của người dùng. Git không nên quyết định cho người dùng thay đổi LESS
mặc định .
Cụ thể hơn, S
cờ gây hại cho người dùng xem lại mã không tin cậy trong máy nhắn tin, vì một bản vá trông như:
-old code;
+new good code; [... lots of tabs ...] malicious code;
sẽ xuất hiện giống hệt như:
-old code;
+new good code;
Người dùng thích hành vi cũ vẫn có thể đặt biến môi trường $ LESS thành -FRSX
rõ ràng hoặc đặt core.pager thành ' less -S
'.
Tài liệu sẽ đọc:
Môi trường không đặt S
tùy chọn nhưng dòng lệnh thực hiện, hướng dẫn ít hơn để cắt ngắn các dòng dài.
Tương tự như vậy, việc thiết core.pager
để less -+F
sẽ tắt F
tùy chọn định bởi môi trường từ dòng lệnh, việc tắt các " quit if one screen
" hành vi của less
.
Người ta có thể kích hoạt cụ thể một số cờ cho các lệnh cụ thể: ví dụ: cài đặt pager.blame
để chỉ less -S
cho phép cắt ngắn dòng git blame
.
core.pager 'less -+F -+X'
sẽ là một cách gần đây hơn để loại bỏ các tùy chọn đó. Xem câu trả lời của tôi dưới đây .