it-swarm-vi.com

Có cách nào để tự động làm mới lệnh ít hơn không?

Tôi thích lệnh watch, nhưng nó có giới hạn của nó .

Tôi tò mò muốn biết liệu tôi có thể bắt chước chức năng của watch với less. Tôi chủ yếu tìm kiếm khả năng cuộn qua thư mục của mình khi nó tự động được sửa đổi thông qua một tập lệnh đang chạy.

146
Zaid

Trong less, bạn có thể nhập F để tiếp tục đọc ở cuối tệp (như tail -f); bạn có thể gõ :e và một tên tệp để xem một tệp khác, nhưng thật không may, nếu bạn nhập tên của tệp hiện tại, less không tải lại tệp. Tuy nhiên, có một mẹo để làm cho nó đọc lại tệp hiện tại, được đề xuất bởi sabgenton : loại :e và nhập tên của tệp không tồn tại ; khiến ít hơn hiển thị thông báo lỗi và sau đó tải lại tệp hiện tại.

Nếu bạn đang tìm kiếm một giải pháp thay thế cho watch ls, ở đây có một ít:

  • Các trình quản lý tệp hiện đại (ví dụ: Nautilus, Thunar, Konqueror, Dolphin, Finder) làm mới các chế độ xem trong thời gian thực.
  • Emacs không được làm mới theo thời gian thực, nhưng với auto-revert-mode, nó sẽ tải lại tệp hoặc thư mục cứ sau 5 giây (độ trễ là cấu hình).
  • Mặc dù w3m chủ yếu là một trình duyệt web, nhưng nó làm cho một thư mục và trình xem tệp văn bản có thể qua được. Nhấn R để tải lại URL (cục bộ).
130

Shift+F sẽ làm cho less tương tự tailf. Đó là, nó được làm mới nếu có thêm dữ liệu vào tệp.

68
balki

Đơn giản chỉ cần gõ:

less +F filename

Điều này giả lập nhấn "F" trong trình chỉnh sửa.

44
jhclark

man trang có thể rất nhiều thông tin. Đừng bị đe dọa bởi chúng. Trong số những thứ khác, man less nói rằng bạn có thể sử dụng lệnh R để:

   R      Repaint the screen, discarding any buffered input.  Useful if the file is changing while it is being viewed.

(Tôi nhận ra câu hỏi này đã hơn 6 tuổi, nhưng nó xuất hiện trên các tìm kiếm của google, vì vậy tôi không phải là người duy nhất nhấp vào liên kết để đến đây.)

23
destenson

Phím "F" khi chạy less sẽ thực hiện "theo dõi" tương tự như tail -f, nhưng tôi không chắc liệu điều đó có đạt được những gì bạn đang tìm kiếm ở đây không.

5
Dave Jennings

Tôi thường chỉ gõ G để theo đuôi đầu ra trên cơ sở một lần. Tôi thấy nó đặc biệt hữu ích đối với một hệ thống tệp mạng như CIFS.

5
jorb

R để sơn lại không phải lúc nào cũng tải lại tệp.[1]

Một cách giải quyết luôn tải lại tệp là nhấn hq, sẽ mở trang Trợ giúp, sau đó thoát. Nó có tác dụng phụ là buộc tập tin tải lại.


[1] Dưới đây là một số ví dụ về các tình huống mà R làm và không tải lại:

  • >>> thay đổi: KHÔNG được tải lại
  • sed -i, gEdit, TextEdit: KHÔNG được tải lại
  • Trên Linux, vi thay đổi: KHÔNG được tải lại
  • Trên máy Mac, vi thay đổi: KHÔNG được tải lại

Tôi tin rằng sự khác biệt liên quan đến việc liệu inode có thay đổi hay không (bạn có thể kiểm tra với ls -i foo.txt). Nếu nút inode thay đổi, thì R sẽ không hoạt động.

3
wisbucky

Bạn có thể sử dụng vim để đọc tệp sau đó thêm ánh xạ sau vào tệp .vimrc Và bạn có thể dễ dàng tải lại tệp bằng ,r:

let mapleader = ","
nnoremap <leader>r :edit <CR>

Lưu ý nếu bạn đã chỉnh sửa tập tin rồi, vim sẽ phàn nàn. Chỉ cần thay đổi thành

let mapleader = ","
nnoremap <leader>r :edit! <CR>

Để bỏ qua những thay đổi.

1
puk

Bạn có thể đặt nó vào tail -f thay vào đó, nó sẽ dẫn đến việc bạn theo dõi đầu ra. Bạn sẽ mất khả năng di chuyển (cuộn) qua đầu ra của bạn.

0
Gert

Tôi chỉ tìm thấy chủ đề này như bất cứ ai khác. Tôi muốn thêm giải pháp khi bạn đã ở cuối tệp, sử dụng 'g' theo sau 'G' sẽ buộc làm mới tệp.

Tôi đã kết thúc việc tạo một nút macro cho điều này trong chương trình thiết bị đầu cuối của mình (SecureCRT). Macro chỉ đơn giản là 'gG'.

0
ZMitchell

Nếu bạn không phản đối việc sử dụng trình duyệt, bạn có thể khởi chạy Algernon máy chủ web bằng lệnh này:

algernon -a -t /directory/name

Sau đó, một danh sách các tệp sẽ được hiển thị và tự động làm mới, tại http: // localhost: 3000 /

0
Alexander