Tính năng Gedit .LOG


1

Trong MS Notepad tôi có thể tạo một tệp như thế này:

.LOG

I updated function xyz(), line 32 today.

lưu nó và khi tôi mở nó:

.LOG

I updated function xyz(), line 32 today.

25-10-14 8:04:56

Làm cách nào tôi có thể đạt được chức năng tương tự trong gedithoặc một chương trình tương tự cho Ubuntu?


Bạn có chắc chắn 100% rằng chức năng thêm ngày làm dòng cuối cùng được thực hiện bằng chính notepad không? Không bao giờ đứng đầu một chức năng như vậy ...
1,

1
Chắc chắn, giáo viên khoa học máy tính của tôi đã cho tôi thấy nó ngày hôm qua! support2.microsoft.com/kb/260563?wa=wsignin1.0
Tim

1
@Jan đó là một mánh khóe cũ. Chỉ Notepad mới làm điều đó (ít nhất là không có plugin, v.v.), tôi nghĩ vậy.
muru

1
Tính năng thú vị, chưa bao giờ nghe nói về nó trước đây.
1

Rất hữu ích để theo dõi các thay đổi mã!
Tim

Câu trả lời:


4

Tôi không chắc chắn về hành vi chính xác của Notepad ở đây. Mặc dù tôi không biết cách thực hiện vimđiều đó dựa trên một số văn bản hiện có trong một tệp, tôi có thể thực vimhiện một thao tác tương tự cho các tệp của một tiện ích mở rộng nhất định, bằng cách thêm phần này vào ~/.vimrc:

au BufWritePre *.log :normal G"=strftime("\n%b %d, %Y %X\n")^Mp

Giải trình:

  • au- là viết tắt của AutoCommand, vimcách thực hiện một số hành động cho một số sự kiện.
  • BufWritePre- vimsự kiện cho ngay trước khi viết ra một tập tin.
  • *.log - các tệp để thực hiện việc này (bạn có thể chọn một tiện ích mở rộng khác)
  • :normal - Chuyển sang chế độ bình thường (chế độ bạn thường ở khi bắt đầu vim)
  • G - đi đến dòng cuối cùng
  • "=strftime("\n%b %d, %Y %X\n")^M- Vào bộ đệm mặc định ( "), sao chép đầu ra của strftimehàm (đây ^Mlà một dòng mới bằng chữ, thu được bằng cách nhấn CtrlV, sau đó Enter)
  • p - sau đó dán bộ đệm.

Mỗi lần tôi viết tệp bằng cách sử dụng :w, ngày hiện tại sẽ được thêm vào tệp:

$ vim test.log
$ vim test.log
$ cat test.log 
I did some work.

Oct 26, 2014 01:15:55  IST

Didn't I?

Oct 26, 2014 01:16:02  IST

Điều này là khá tùy biến. Bạn có thể chọn tiện ích mở rộng tệp của mình, bỏ qua Gnếu bạn muốn nối ngày sau dòng hiện tại, sửa đổi định dạng thời gian, sử dụng các sự kiện khác (xem :h autocmd-events).


Nơi nào bạn đặt lệnh?
Tim

@Tim quên hướng dẫn quan trọng nhất. :( Trong bạn ~/.vimrc.
muru

Tôi có một cuộc gọi .vimrc-local, tôi có cần tạo .vimrckhông?
Tim

@Tim thật đáng ngạc nhiên. Nếu bạn không có ~/.vimrc, tôi nghĩ bạn nên tạo một cái, và (ít nhất) thêm set nocompatibleở trên cùng.
muru

1

Tôi đã sử dụng chức năng ".LOG" của Notepad trong vài năm và đã phát triển phụ thuộc vào nó khá nhiều. Câu trả lời của tôi cho bạn không phức tạp như một số câu trả lời ở đây (tôi nghi ngờ đó là vì tôi không hiểu biết như một số người đã cố gắng giúp bạn ở đây ...) Khi Microsoft XP OS bị Microsoft bỏ rơi Tôi đã chọn một bước nhảy vọt bằng cách chuyển máy XP cũ của mình sang Debian Linux. (Không thể yêu một đứa trẻ như tôi yêu Debian Linux BTW ...; o)! ) Trong mọi trường hợp, có tình huống khó xử như bạn, tôi chỉ cần cài đặt RƯỢU và sử dụng Notepad từ bên trong nó. Tôi hy vọng cái này sẽ giúp bạ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.