Làm cách nào để tạo ký tự tab 4 khoảng trắng thay vì 8 khoảng trắng trong nano?


152

Khi tôi nhấn TAB trong nanotrình chỉnh sửa, con trỏ sẽ nhảy với 8 khoảng trắng như thế này:

def square(x):
        return x * x
def cube(y):
        return y * y * y

Làm cách nào tôi có thể đặt chiều rộng của tab thành 4 khoảng trắng để hiển thị như thế này:

def square(x):
    return x * x
def cube(y):
    return y * y * y

Nano là một trình soạn thảo khá cơ bản. Có một cơ hội tốt nó chỉ không hỗ trợ này.
millimoose

umm không chỉ bằng nano, mà nó còn thụt vào 8 khoảng trống khi tôi sử dụng trình thông dịch python trong Terminal.
Sa ngã Satan

2
Điều này đã được trả lời trên SuperUser và nên được đóng lại dưới dạng trùng lặp: superuser.com/questions/110421/tab-character-ference-in-terminal
millimoose

6
@millimoose, việc thay đổi các điểm dừng trong thiết bị đầu cuối không ảnh hưởng đến nano. Câu hỏi này phải cụ thể về nano hoặc về việc thiết lập các điểm dừng tab cho Python, nhưng không phải về cả hai và không phải về việc thiết lập tương tác các điểm dừng tab bằng tablệnh, điều này không ảnh hưởng đến tất cả các chương trình.
Chris Trang

Câu trả lời:


253

Nếu bạn sử dụng nano với ngôn ngữ như python (như trong ví dụ của bạn), bạn cũng nên chuyển đổi các tab thành khoảng trắng.

Chỉnh sửa tệp ~ / .nanorc của bạn (hoặc tạo tệp) và thêm:

set tabsize 4
set tabstospaces

Nếu bạn đã có một tệp có các tab và muốn chuyển đổi chúng thành khoảng trắng, tôi khuyên dùng expandlệnh (shell):

expand -4 input.py > output.py

Tôi đang sử dụng bạc hà và khi tôi đặt các tab từ 8 đến 4 in / etc / nanorc và quay lại tệp, tôi vẫn nhận được 8 khoảng trắng trong tab, tôi thậm chí đã cố gắng sao chép tệp nanorc đó thành ~ /. nhưng nó không hoạt động, đóng và mở lại thiết bị đầu cuối, nhưng tôi vẫn không thể nhận được 4 khoảng trắng trên tab trừ khi tôi sử dụng nano -T4. Cảm ơn
Alex

@Alex kiểm tra lại xem tệp của bạn có bắt đầu bằng dấu chấm .nanorckhông nanorc. Điều này phải được đặt trong thư mục nhà người dùng của bạn, tức là /home/your-username/.nanorc.
Sven Rojek

1
Cảm ơn, cuối cùng tôi đã tạo ra một .nanorc khác với cái trong / etc, đặt nó trong thư mục nhà và nó đã hoạt động. Đây là 3 dòng duy nhất tôi đưa vào .nanorc mới cho bất kỳ ai quan tâm: đặt nowrap, đặt tab 4 và đặt tabstospaces
Alex

4
Nếu đây là đồ chơi của bạn, bạn có thể thực hiện thay đổi này trên toàn hệ thống, chỉ cần chỉnh sửa tệp toàn cầu /etc/nanorc. Có một vài lựa chọn khác mà bạn có thể thích.
fcm

Xin chào @Alexey. Lệnh Linux Shell này hoạt động cho tất cả các tệp, nhưng hãy đảm bảo chỉ định một tệp đầu ra khác, nếu không tệp của bạn sẽ bị xóa.
Sven Rojek

91

Cờ dòng lệnh

Từ man nano:

-T cols (--tabsize=cols)
    Set the size (width) of a tab to cols columns.
    The value of cols must be greater than 0. The default value is 8.
-E (--tabstospaces)
    Convert typed tabs to spaces.

Ví dụ: để đặt kích thước tab thành 4, thay thế các tab bằng dấu cách và chỉnh sửa tệp "foo.txt", bạn sẽ chạy lệnh:

nano -ET4 foo.txt

Tập tin cấu hình

Từ man nanorc:

set tabsize n
    Use a tab size of n columns. The value of n must be greater than 0.
    The default value is 8.
set/unset tabstospaces
    Convert typed tabs to spaces.

Chỉnh sửa ~/.nanorctệp của bạn (tạo tệp nếu nó không tồn tại) và thêm các lệnh đó vào tệp. Ví dụ:

set tabsize 4
set tabstospaces

Nano sẽ sử dụng các cài đặt này theo mặc định bất cứ khi nào nó được khởi chạy, nhưng các cờ dòng lệnh sẽ ghi đè lên chúng.


umm ... tôi không thể tìm thấy tập tin .nanorc trong thư mục ~ /
Fallen Satan

1
Ok, đừng bận tâm. Tôi tìm thấy nanorc trong thư mục / etc. cảm ơn mặc dù
Fallen Satan

5
@FallenSatan, nói chung, bạn nên tránh chỉnh sửa / etc / nanorc, trừ khi bạn cần thực hiện các tùy chỉnh trên toàn hệ thống. Tạo ~ / .nanorc nếu nó chưa tồn tại và đặt các tùy chỉnh của bạn ở đó.
Chris Trang

1
Lưu ý rằng trong câu trả lời ở trên, bạn cần thêm dòng "set tabize 4", không phải "set tabspace 4"
Thomas N

1
sudo nano sẽ không mất ~ / .nanorc vì một lý do rõ ràng; vì vậy cờ dòng lệnh là một giải pháp thiết thực hơn cho vấn đề.
user608800

11

Trong nano 2.2.6, dòng trong ~ / .nanorc để làm điều này dường như là

set tabsize 4

Cài đặt không gian tab cho tôi lỗi: 'Cờ không xác định "tabspace"'


4

Đối với người xem trong tương lai, có một dòng trong tệp / etc / nanorc của tôi gần với dòng 153 có nội dung "đặt tabize 8". Từ này có thể cần phải được thay đổi kích thước thay vì không gian tab. Sau khi tôi thay 8 bằng 4 và bỏ dòng, nó đã giải quyết được vấn đề của tôi.



0

Đối với bất cứ ai có thể vấp phải câu hỏi cũ này ...

Có một điều mà tôi nghĩ cần phải giải quyết.

~/.nanorcđược sử dụng để áp dụng các cài đặt cụ thể cho người dùng của bạn cho nano, vì vậy nếu bạn đang chỉnh sửa các tệp yêu cầu sử dụng sudo nanoquyền thì điều này sẽ không hoạt động.

Khi sử dụng sudocác tệp cấu hình người dùng tùy chỉnh của bạn sẽ không được tải khi mở chương trình, vì bạn không chạy chương trình từ tài khoản của mình nên không có thay đổi cấu hình nào của bạn ~/.nanorcđược áp dụng.

Nếu đây là tình huống bạn thấy mình (muốn chạy sudo nano sử dụng cài đặt cấu hình của riêng bạn) thì bạn có ba tùy chọn:

  • sử dụng cờ dòng lệnh khi chạy sudo nano
  • chỉnh sửa /root/.nanorctập tin
  • chỉnh sửa /etc/nanorctập tin cấu hình toàn cầu

Hãy nhớ rằng đó /etc/nanorclà một tệp cấu hình toàn cầu và như vậy nó ảnh hưởng đến tất cả người dùng, điều này có thể hoặc không phải là vấn đề tùy thuộc vào việc bạn có hệ thống nhiều người dùng hay không.

Ngoài ra, các tệp cấu hình người dùng sẽ ghi đè lên toàn cục, vì vậy nếu bạn chỉnh sửa /etc/nanorc~/.nanorcvới các cài đặt khác nhau, khi bạn chạy, nanonó sẽ tải các cài đặt từ ~/.nanorcnhưng nếu bạn chạy sudo nanothì nó sẽ tải các cài đặt từ đó /etc/nanorc.

Điều này cũng tương tự với /root/.nanorcđiều này sẽ ghi đè /etc/nanorckhi chạysudo nano

Sử dụng cờ có lẽ là lựa chọn tốt nhất trừ khi bạn có rất nhiều lựa chọn.

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.