2012-05-15 28 views
13

Đây là một điều kỳ lạ mà tôi không thể tìm được câu trả lời hay với Google (tất nhiên luôn có khả năng là tôi chỉ thất bại ở đó). Trên dấu nhắc bash của tôi, nếu tôi tô màu một phần của dấu nhắc, khi tôi nhấn 'lên' để đi đến lệnh trước, tôi không thể đi đến đầu dòng sau khi quá số ký tự nhất định (cụ thể là 31) .Vấn đề lịch sử nhắc nhở Bash

nhắc bash hiện tại của tôi là thế này: (màu sắc được định nghĩa trước đó trong .bashrc của tôi)

PS1="[\[email protected]$cyan\h$NC \w] " 

Nhưng nếu tôi thay đổi nó như thế này:

PS1="[\[email protected]\h \w] " 

Nó không còn ngăn cản tôi từ đi đến đầu dòng.

Phần lẻ, là trực quan, khi tôi nhấn vào nhà để đi đến đầu dòng (hoặc sử dụng các phím mũi tên) nó dừng 11 ký tự trong chuỗi, nhưng nếu tôi chỉnh sửa từ đó, nó sẽ chỉnh sửa bắt đầu từ đầu dòng.

Có ai biết tại sao điều này có thể xảy ra không? Tôi muốn sử dụng các màu trong lời nhắc khi tôi làm quản trị máy chủ và màu sắc là cách tôi phân biệt các hộp của mình trong nháy mắt.

Trả lời

25

Các chuỗi không in như mã màu phải được bao quanh bởi \[\] do đó độ dài của chúng không được tính là một phần của độ dài của lời nhắc.

+1

[Ví dụ] (https://github.com/l0b0/tilde/blob/9161937d6173e65e81de145bbc7edbbb074e99e5/.bashrc#L92) – l0b0

+0

Chính xác là vậy, cảm ơn! –

+0

Tôi đã gặp vấn đề khó chịu này trong nhiều tháng. Cảm ơn bạn! +1 – jweyrich

Các vấn đề liên quan