Bagaimana cara membuat opsi untuk menyisipkan stempel waktu?

8

Saat mengedit dokumen teks, saya harus sering memasang prangko waktu. Saya berpikir untuk mengotomatiskannya dengan 2 cara berbeda. Tampaknya tidak ada yang berhasil.

  1. Menggunakan tindakan nautilus

Saya mengatur tindakan konteks kanan baru yang menjalankan perintah date|xclip

masukkan deskripsi gambar di sini

Konteks kanan ini tidak muncul ketika saya mengklik kanan di aplikasi lain (seperti terminal, atau browser). Terlebih lagi ketika itu muncul, dan saya mengkliknya, itu tidak melakukan apa-apa.

  1. Menggunakan pintasan keyboard

Saya menyiapkan pintasan keyboard baru yang seharusnya menjalankan dateperintah tetapi tidak.

masukkan deskripsi gambar di sini

Ada petunjuk?

Terima kasih.

pengguna13107
sumber

Jawaban:

11

Pintasan keyboard GNOME harus berfungsi.

Inilah mengapa apa yang Anda coba tidak berhasil: Pintasan keyboard Anda menjalankan dateperintah, tetapi tidak melakukan apa-apa dengan output (yang baru saja dibuang). Anda harus menyalurkannya ke xclip, date | xclipuntuk menyalinnya ke pilihan X ( bukan clipboard). Kemudian Anda dapat menempelkannya ke dokumen Anda dengan mengklik tengah. Jika Anda ingin dapat menggunakan Ctrl-V, alih-alih gunakan date | xclip -selection cuntuk menyalinnya ke clipboard yang sebenarnya.

Alternatif lain adalah menggunakan xdotooluntuk mengetik tanggal secara langsung ke dalam dokumen Anda. Tetapkan pintasan Anda

xdotool type "$(date)"

Kemudian, ketika Anda menekan tombol pintas, itu akan menghitung tanggal saat ini dan ketik karakter itu ke dalam dokumen Anda.

Untuk format ISO 8601, gunakan xdotool type "$(date --rfc-3339=s)".


Jika tidak berhasil: Karena ini adalah perintah shell (yang bertentangan dengan executable), Anda mungkin harus meneruskan perintah bashketika menentukannya di pintasan Anda. Maka perintah Anda adalah:

bash -c 'xdotool type "$(date --rfc-3339=s)"'
Siput mekanik
sumber
Terima kasih. Sudah mencobanya. Tapi itu tidak berhasil. Saya menetapkan pintasan ke CTRL +; dan saya klik kombinasi khusus ini di desktop dan kemudian saya klik CTRL + V (katakanlah di gmail) tetapi tidak menempel. Apakah saya harus memulai ulang laptop?
user13107
@ user13107: Ternyata secara default, xclipmenyalin teks bukan ke clipboard, tetapi ke pilihan X. Untuk menempelkannya, gunakan klik tengah daripada Ctrl-V.
Mekanik siput
Menggunakan bash -cmemang berhasil tetapi ada beberapa jenis keterlambatan dalam mengetik. Ketika saya mengklik pintasan, cap waktu lengkap tidak diketik menggunakan xdotool. Beberapa angka awal dimakan misalnya 1-07 15:14:35+08:00atau013-01-07 15:14:35+08:00
user13107
1
@ user13107 Saya punya masalah yang sama. Setelah beberapa percobaan dan kesalahan saya berakhir dengan perintah bash -c 'date | xclip -selection clipboard && xdotool key 'ctrl+v''yang bekerja dengan sempurna.
Immanuel Weihnachten
1
@ user13107 - ini karena Anda tidak menggunakan xdotool --clearmodifiers- beberapa tombol diketik dengan Ctrl (mis. - spasi, ia tertelan). Beberapa karakter tidak akan diketik (mis. :- yang digeser), tetapi saya menggunakan perintah berikut: xdotool type --clearmodifiers $(date "+%Y-%m-%d,%H-%I")yang berfungsi untuk saya.
Tomasz Gandor
3

Saya telah berhasil menggunakan ini sebagai pintasan keyboard khusus yang ditugaskan untuk Ctrl+Shift+D:

bash -c 'sleep 0.3 && xdotool type "$(date -u +%Y-%m-%d_%H:%M:%SZ)"'

Saya menemukan menambahkan sedikit keterlambatan menyelesaikan masalah dengan karakter awal yang hilang, dan tidak mencemari clipboard saya.

Perhatikan bahwa saya menggunakan versi format RFC 3339 / ISO 8601 yang sedikit disesuaikan: Saya sering menggunakan ini dalam konteks di mana saya ingin menghindari ruang dalam datekeluaran RFC 3339, tapi saya menemukan Tyang memisahkan tanggal dari waktu di Cap waktu ISO 8601 agak tidak intuitif dan sulit dibaca, jadi saya menemukan garis bawah bekerja dengan baik.

Gabriel Grant
sumber
1
bash -c 'xdotool keyup super && xdotool type "$(date +%Y.%m.%d)"'

Saya menggunakan Super+Qsebagai jalan pintas saya, dan saya perlu menghapus superpengubah sebelum mengirim date. Saya mencoba --clearmodifierstetapi itu akan menyebabkan unity dashpop up setelah pintasan dijalankan [1]

[1] Alasannya unity dashakan muncul setelahnya adalah sebelum superdikembalikan jika --clearmodifiersdigunakan Kutipan dariman xdotool

CLEARMODIFIERS
       Any command taking the --clearmodifiers flag will attempt to clear any
       active input modifiers during the command and restore them afterwards.
Sungam
sumber