- Komut satırında metin düzenlemek temel bir özellik gibi görünse de, programların girişi işleme biçimi farklı olduğundan aynı tuş tamamen farklı şekilde çalışabilir
- Terminaldeki giriş deneyimi genel olarak dört akışa ayrılır: giriş sistemi olmaması, GNU readline,
libedit gibi alternatif kütüphaneler ve özel giriş sistemleri
cat, nc, dash gibi basit araçlarda ok tuşları ^[[D gibi görünebilir, ancak terminalin sunduğu Ctrl+W, Ctrl+U, Ctrl+C, Ctrl+Z yine de kullanılabilir
bash, psql, irb, python3 gibi readline tabanlı araçlar geçmiş, ok tuşları, Ctrl+R araması, Ctrl+A/Ctrl+E ile gezinme sağlar; benzer bir deneyim rlwrap ile de eklenebilir
- Mevcut giriş sistemini ayırt edebilirseniz, ok tuşlarının veya
Ctrl+R'nin neden farklı göründüğünü hızlıca anlayabilir ve gerekirse belgeye bakma ya da rlwrap gibi geçici çözümler seçme işi kolaylaşır
Programa göre değişen giriş deneyimi
- Terminalde metin girme ve düzenleme biçimi programdan programa büyük ölçüde değişir
- Başlıca türler kabaca şöyle ayrılır
cat, nc, git commit --interactive gibi araçlar ok tuşlarını desteklemez; bu yüzden ^[[D^[[D^[[C^[[C^ gibi dizeler görebilirsiniz
irb, Linux'taki python3 gibi araçlar readline kütüphanesiyle geçmiş ve ok tuşları gibi temel düzenleme işlevleri sunar
- Mac'teki
/usr/bin/python3 gibi bazı durumlarda ok tuşları çalışır ama Ctrl+left ya da Ctrl+R ile ters yönde arama desteklenmez
fish, ipython3, micro, vim gibi araçlar kendi giriş sistemlerini kullanır
Mod 1: Giriş sistemi olmayan temel durum
- Bir program
fgets() gibi çağrılarla yalnızca metin alıyor ve ayrı bir düzenleme özelliği sunmuyorsa, ok tuşları düzenleme komutu yerine kaçış dizisi olarak yazdırılabilir
- Örneğin
dash içinde sol ok tuşuna bastığınızda terminale şöyle ^[[D yazılabilir
$ ls l-^[[D^[[D^[[D
- Buna rağmen terminalin varsayılan olarak sunduğu kontrol işlevleri kalır
- Metin girişi
- Backspace
Ctrl+W: önceki kelimeyi sil
Ctrl+U: tüm satırı sil
Ctrl+C: süreci kes
Ctrl+Z: süreci duraklat
- Böyle bir ortamda da
Ctrl+W kullanarak backspace'e defalarca basmadan kelime bazında silebilirsiniz
- Terminalin desteklediği kontrol kodlarını
stty -a ile görebilirsiniz
Mod 2: readline kullanan araçlar
- readline, metin girişini daha rahat hale getiren bir GNU kütüphanesidir ve birçok etkileşimli araçta kullanılır
- Sık kullanılan readline kısayolları şunlardır
Ctrl+E veya End: satır sonuna git
Ctrl+A veya Home: satır başına git
Ctrl+left/right arrow: birer kelime ileri/geri git
- Yukarı ok: önceki komuta git
Ctrl+R: geçmişte arama
- Temel moddaki
Ctrl+W, Ctrl+U da kullanılabilir; ancak readline içinde Ctrl+U tüm satırı değil, imleçten satır başına kadar olan kısmı siler
bash içindeki Ctrl+R geçmiş araması, readline'in sunduğu bir özelliktir
psql, irb, python3 da readline kullanan programlara örnektir
- Readline düzenleme komutlarının tam listesi readline kılavuzunda görülebilir
Readline olmayan araçlara rlwrap eklemek
nc gibi readline desteklemeyen programları rlwrap nc ile çalıştırırsanız, readline destekli bir program gibi kullanabilirsiniz
- rlwrap, readline olmayan araçların kullanılabilirliğini ciddi ölçüde artırabilir
- Özel otomatik tamamlama da ayarlanabilir, ancak bunun fiilen denenmiş bir anlatımı değil
Araçlar neden readline kullanmaz?
- Bazı araçların readline kullanmamasının birkaç nedeni vardır
cat, nc gibi çok basit programlar görece büyük bir bağımlılık eklemek istemeyebilir
- Readline, LGPL değil GPL lisanslıdır; bu da programın lisansıyla uyumsuz olabilir
- Programın yalnızca bir bölümü etkileşimliyse ve giriş
y ya da n gibi tek karaktere yakınsa, readline desteğinin önceliği düşük olabilir
git, git add -p gibi etkileşimli özelliklere sahip olsa da, anlamlı uzunlukta girdi gerektiğinde genelde bir metin düzenleyici açar
idris2, bağımlılıkları en aza indirmek için readline kullanmaz; daha iyi etkileşimli özellikler gerekiyorsa rlwrap kullanmayı önerir
Şu anda readline kullanılıp kullanılmadığını anlama
- En basit kontrol yöntemi
Ctrl+R tuşuna basmaktır
- Şu istemi görüyorsanız readline kullanılıyor olma ihtimali yüksektir
(reverse-i-search)`':
- Başka kütüphaneler de aynı terimi kullanabilir, bu yüzden kesin bir test değildir; ancak geçmiş aramasında
reverse-i-search ifadesini kullanan başka bir sistem biliniyor değil
Readline kısayolları ve Emacs
Ctrl+A ile satır başına, Ctrl+E ile satır sonuna gitme kısayolları Emacs kökenli sayılabilir
- Emacs'te de
Ctrl+A ve Ctrl+E, readline ile aynı işi yapar
- Buna karşılık
Ctrl+W, Ctrl+U Emacs ile terminalde aynı davranmaz
- Readline projesinin geçmişi hakkında daha fazlası Readline proje tarihinde bulunabilir
Mod 3: libedit gibi alternatif giriş kütüphaneleri
- Mac'teki
/usr/bin/python3, yalnızca bazı readline özelliklerini destekleyen ara bir durumda sayılabilir
- Örneğin
Ctrl+left arrow tuşuna bastığınızda kelime geçişi yerine ;5D yazılabilir
$ python3
>>> importt subprocess;5D
- Mac OS varsayılan Python kurulumunda Python
readline modülü gerçekte libedit tabanlıdır
- Bunun nedeninin readline'in GPL lisansı olduğu tahmin ediliyor
- Bu Python'un libedit kullanıp kullanmadığını şu komutla kontrol edebilirsiniz
$ python3 -c "import readline; print(readline.__doc__)"
Importing this module enables command line editing using libedit readline.
- Linux'ta veya Homebrew ile kurulan Python genelde readline kullanır
- Python 3.13, readline bağımlılığını kaldırıp kendi kütüphanesini kullanmayı planlıyor; bu yüzden gelecekte “Python readline kullanır” ifadesi her zaman doğru olmayabilir
Mod 4: Özel giriş sistemleri
- Bazı programlar kendi metin düzenleme sistemlerini kullanır ve bazen readline'dan daha fazla özellik sunar
- Özel giriş sistemi kullanan örnekler şunlardır
nano, micro, vim, emacs gibi çoğu terminal metin düzenleyicisi
fish gibi kabuklar
zsh'nin satır düzenleyicisi zle
ipython gibi REPL'ler
atuin gibi araçlar
- Bu sistemlerde şu özellikleri görebilirsiniz
- Araca daha uygun otomatik tamamlama
- Sözdizimi vurgulaması içeren daha iyi geçmiş yönetimi
- Daha fazla klavye kısayolu
Readline'dan ilham alan özel giriş sistemleri
- Atuin, kabuk geçmişi arama aracıdır; giriş uygulaması kendine ait olsa da yaklaşımı readline'dan esinlenmiştir
- Atuin, kullanıcıların readline tuş atamalarına alışkın olmasından yararlanır ve readline'i doğrudan kullanmasa bile bu tuş atamalarını çalıştırır
- IPython'ın kullandığı prompt_toolkit da birçok seçenek sunar; buna vi tarzı tuş atamaları da dahildir
- prompt_toolkit'in varsayılanı readline tarzı tuş atamalarını desteklemektir
- Bu, birçok programın aşağı için
j, yukarı için k gibi temel vim tuş atamalarını desteklemesine benzer
- Örneğin Fastmail, kısayollarının çoğu vim ile çok ilgili olmasa da
j, k destekler
- Readline'dan ilham alan bu özel giriş sistemleri readline ile ince farklarla uyumsuz olabilir; ancak yalnızca birkaç temel kısayol kullanan kullanıcılar için bu büyük bir sorun olmayabilir
- Bu özel sistemler genelde yalnızca readline kullanmaya göre daha iyi otomatik tamamlama sağlayabilir
vi modunu destekleyen kabuklar
bash, zsh, fish metin girişi için vi modu destekler
- Mastodon'da yapılan bilimsel olmayan ankette, katılımcıların %12'si vi modunu kullandığını söyledi
- Readline'in kendisinde de vi modu vardır;
bash içindeki vi modu desteği bunun üzerinden çalışır
- Readline kullanan başka birçok program da vi moduna sahip olabilir
Giriş durumunu teşhis etme akışı
- Hangi giriş sisteminin kullanıldığını bilmek, komut satırı davranışını daha öngörülebilir hale getirir
- Giriş isteminde şu sırayla değerlendirme yapabilirsiniz
- Ok tuşları çalışmıyorsa büyük olasılıkla giriş sistemi yoktur; buna rağmen
Ctrl+W, Ctrl+U kullanılabilir ve gerekirse rlwrap eklenebilir
Ctrl+R ile reverse-i-search görünüyorsa bunun readline olma ihtimali yüksektir; tanıdık readline kısayolları ve temel geçmiş özellikleri kullanılabilir
Ctrl+R farklı davranıyorsa bunun özel bir giriş kütüphanesi olma ihtimali yüksektir; genelde readline'a benzer çalışabilir ve gerekirse belgeler kontrol edilebilir
- Burada ele alınmayan başka giriş karmaşıklıkları da vardır
ssh, tmux ile ilgili sorunlar
TERM ortam değişkeni
- GNOME Terminal, iTerm, xterm gibi terminaller arasında kopyala-yapıştır desteği farkları
- Unicode
- ve diğer çeşitli giriş sorunları
1 yorum
Hacker News yorumları
Julia’nın yazıları her zaman iyi oluyor. Eksik kalan bir nokta: kabuk betiği içinde
sttykullanırsanız, giriş işleme biçimi dahil terminalin birçok davranışını değiştirebilirsiniz.Eskiden
shvesttyile yaptığım bir deney: https://gist.github.com/alganet/63f1dbc97b8fd35f7bb14ec30f79...VT100 uyumlu terminallerde (mintty, xterm, Terminal.app, vscode vb.) çoğu tuş kombinasyonunu ve fare jestlerini (basma/sürükleme/bırakma) bile kabuk içinde yakalayıp yorumlayabilirsiniz.
Çalışan demo
bash -c "$(curl -L https://git.io/fjToH)"; tuşlara basmayı veya fareyi hareket ettirmeyi deneyebilirsiniz. Çıkış Ctrl+W. zsh ve ksh de destekleniyor, ancakread -rn1olmayan dash gibi kabuklar desteklenmiyor.Ayrıca
vi | cat -vgibi etkileşimli bir programıcat -v’ye pipe ederseniz, o programın kullandığı VT100 escape dizilerini görebilirsiniz; vi’nin bunu nasıl yaptığını izleyerek çok şey öğrendim.stty saneyazarsanız eski hâline döndürebilirsiniz.3 terminal açıp 1)
man ascii, 2)nc -lvp 9001 | xxd -c1, 3)stty raw -echo; nc -nv 127.0.0.1 9001çalıştırın; ardından 3. terminalde manpage’deki “Hex” sütununun tamamını sırayla yeniden üretmeye çalışın.Bazı değerlerin birden fazla şekilde üretilebildiğini, başka tuşlardan bazılarının da çok baytlı payload gönderdiğini gözlemleyebilirsiniz.
sttyve raw mode’u anlamama yardımcı olmuştu: https://viewsourcecode.org/snaptoken/kilo/, https://viewsourcecode.org/snaptoken/kilo/02.enteringRawMode...Büyü gibi görünen
sttyparametreleri ve sembolleri, çok eskiden tanımlanmış kontrol dizilerinden geliyor. ECMA-48 gibi 1970’lerden kalma muğlak standartlarda, bugün neredeyse hiç kullanılmayan pek çok anlaşılması zor terim de var.Örneğin Select Graphic Rendition(SGR) kabaca 1970’ler versiyonu HTML etiketi gibi bir şey; ön plan rengini ayarlamak için
ESC[38;2;R;G;BmTextESC[0mbenzeri bir yapı kullanılır.ESC[CSI,mSGR,38ön plan rengi,2RGB renk uzayı,0ise stil sıfırlamadır.Komuttan önce parametrelerin gelmesi biraz ters hissettiriyor. Tarayıcılarda olduğu gibi terminallerde de neyin nasıl uygulandığı her zaman farklıydı ve hâlâ öyle. Renk desteği oldukça iyi, ama diğer özellikler için aynı şey geçerli değil. Örneğin
SGR<7>“negative image” modu olarak geçiyor, fakat standart bunu ayrıntılı açıklamadığı için bazı terminaller ters görüntüleme yapıyor, bazıları başka şekilde ele alıyor; bu da bugün bile sorun çıkarıyor.20 yıldan da fazla önce readline üzerinde bir durum makinesi kurup, yalnızca bir satırın sarılmasından ibaret olmayan, yukarı-aşağı hareket edilebilen gerçek bir çok satırlı düzenleyici gibi kullanılmasını sağlamıştım.
Video: https://github.com/colmmacc/jot/raw/master/jot-demo.mp4
Bu özelliği içeren Unix terminal IM istemcisinin CVS deposu: https://c-hey.redbrick.dcu.ie/src/c-hey_cvs_latest/
Satırlar arasında yukarı-aşağı hareket ederken imleci izleyip yeniden çiziyor; terminal boyutu değişirse SIGWINCH’i izleyip tekrar çiziyor. Rust ile yeniden yazıp küçük bir kütüphane olarak yayımlamak istiyorum ama zaman bulamadım. Kimsenin benzer bir şey yapmamış olması beni hep şaşırtmıştır.
autoload -Uz zedardındanzedkullanarak geçici bir dosyayı düzenleyipgit commit -F’ye verirseniz, ZLE’nin tüm özelliklerine sahip satır içi bir düzenleyici başlatabilirsiniz.C-x C-wile kaydedip commit edebilir,C-cile iptal edebilirsiniz.Bu temel uygulamanın avantajı,
zed’in yeni bir ZLE widget’ı olması sayesinde keymap üzerinde tam kontrol sağlamasıdır. emacs modu veya vi modu doğrudan çalışır, ayrıca daha da özelleştirilebilir.Kendi ZLE widget’ınızı yazarsanız, satır düzenleyicinin içinden doğrudan çağırabilirsiniz; böylece yukarıdaki gibi komutu sarmaya da gerek kalmaz.
https://github.com/zsh-users/zsh/blob/master/Functions/Misc/...
git commit’in etkileşimli modu gibi bağlam değiştirmek zorunda kalmama avantajına katılıyorum. “Satır içi daktilo” gibi etkisi de hoş.Yazıda atlananlar arasında geniş karakterler, klavye modu farkları yüzünden aynı tuş girişinin farklı ANSI escape dizileriyle temsil edilmesi sorunu, yerel echo gibi TTY durum farklılıkları ve TTY durumunu değiştiren sistem çağrılarının işletim sistemine göre ince farklar göstermesi var.
Terminal emülasyonu desteği de her yerde farklı. Günümüzde genelde xterm taklit ediliyor ama bunun içinde bile %100 uyumluluğu hedefleyen pek yok.
Terminalin sunduğu özellikleri denetleme yönteminde de uzlaşma eksik. Kimisi ANSI escape dizisi gönderip yanıt bekliyor, kimisi
$TERMe bakıyor, bazı terminaller kendini xterm olarak gösterirken VT özellik dizilerini yok sayıp başka ortam değişkenleri ayarlıyor. Açıkçası kullanıcı ajanı dizgelerinden bile daha karmaşık.Bütün bunlar POSIX sistemleri varsayımıyla geçerli; Windows’u da işin içine katınca iki kat ilginçleşiyor.
bash’te
$EDITORı sevdiğiniz düzenleyiciye ayarlarsanız Ctrl-X Ctrl-E ile mevcut satırı$EDITORa gönderebilirsiniz. Komutu düzenleyip kaydedip çıktığınızda çalıştırılır.vye basmanız da yeterli.fcyerleşik komutu da aynı işi yapar. Ctrl tuş dizilerine gerek olmadan sadecefcyazabilirsiniz.Önceki komutu varsayılan
$EDITORyerine belirli bir düzenleyiciyle de açabilirsiniz. ÖrneğinEDITOR=viiken bir önceki komutu ed ile düzenlemek içinfc -e edkullanılır.vi modunda komut geçmişinden hızlıca shell betiği oluşturmanın bir yolu da var. İstediğiniz komut geçmişte 15. sıradaysa
fc 15ardındanw1.sh,%d,wqgibi işlemlerle halledilebilir.EDITOR=nvimile copilot.vim’i birlikte kullanıp yapay zeka destekli shell otomatik tamamlama gibi kullanıyorum. Gayet iyi.Bunu burada görmüştüm: https://twitter.com/arjie/status/1575201117595926530?s=46&t=...
Linux’a yeni başlayan biri olarak, bir program yalnızca
fgets()gibi bir şeyle metin okusa bile backspace, Ctrl+W, Ctrl+U gibi özelliklerin nasıl bedavaya geldiğini merak ediyorum.fgets()belgelerinde newline ya da EOF gelene kadar okuduğu yazıyor; bu, varsayılan olarak kullanıcı newline girene kadar bloklandığı ve ondan önce terminalin satır tamponunu backspace veya Ctrl+W/Ctrl+U ile düzenlemeye izin verdiği anlamına mı geliyor, merak ediyorum.Ama programın her zaman tüm satırı okuyacağının garantisi yok;
count2 verilerek karakter karakter de okunabilir. O zaman backspace gerçekleştiğinde zaten okunmuş karakteri “geri almak” mümkün olmayacak gibi;fgets()iç tamponunda bir sihir mi var, yoksa böyle durumlarda satır düzenleme özelliği mi bozuluyor, merak ediyorum.https://en.cppreference.com/w/c/io/fgets
Newline’a göre tamponlanıyormuş gibi görünmesinin nedeni bunu aslında shell’in yönetmesidir; bu yüzden geliştiriciler sekme tamamlama veya satırın başına sudo ekleme gibi metin tamponu işleme özellikleri koyabilir.
Enter’a basılmadan önce ekrandaki karakterler yalnızca terminal belleğindedir; uygulamanın
readsistem çağrısı terminal dosya tanımlayıcısında bloklanmış durumdadır. Satır tamamlanana kadar terminal veri yazmaz.Bu sırada girilmekte olan satırın düzenlenmesini de genelde terminalin kendisi sağlar. Karakterlerin ekranda görünmesi de echo denen bir terminal özelliğidir; backspace, delete, SIGINT için Ctrl+C ve EOF için Ctrl+D de aynı şekilde.
Satır düzenleyicileri ve metin düzenleyicileri bu özellikleri kapatıp terminali ham moda (raw mode) alır. Girilen her şey anında uygulamaya iletilir ve doğrudan orada işlenir. Parola istemlerinin karakterleri gizlemek için yalnızca echo’yu kapatması da yaygın bir örnektir.
Geleneksel Unix satır sonu
\nde aslında bir terminal özelliğidir. Terminal açısından\nimleci yalnızca bir satır aşağı taşır; satır başına dönmek için\rde gerekir. Gerçek satır sonu\r\n’dir ve terminal görünmez biçimde\ni\r\ne çevirir. Bu da devre dışı bırakılabilir.raw modda böyle çalışmaz.
helpprogramını SunOS’a port etmekti. İlk engel Enter/Return beklemeden her tuş girişine tepki verme yolunu bulmaktı.Patronum bilerek neredeyse hiç yardım etmedi; web’in olmadığı, O’Reilly kitaplarının da çok az olduğu 1986’da bunu neredeyse tek başıma çözmemi sağladı. O karar için hâlâ sonsuza dek minnettarım.
dash shell’i de libedit ile derlenirse düzenleme modunu destekler. Debian türevleri muhtemelen alan kaygısıyla böyle yapmıyor ama bash ile başlayanların daha sonra daha az şey öğrenmek zorunda kalması isteniyorsa desteklenmesi gerektiğini düşünüyorum.
POSIX standardı da
set -o viyi isteğe bağlı bir genişletme olarak belirtir. POSIX uyumlu olduğunu iddia eden bir shell bu düzenleme modunu uyguluyorsa mutlakaset -o viyi desteklemelidir.“
[set -o] vi: yerleşik vi düzenleyicisini kullanarak shell komut satırı düzenlemeye izin verir. vi modu açıldığında, uygulama genişletmesi olarak sağlanan diğer komut satırı düzenleme modları devre dışı bırakılmalıdır.”https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V...
Terminalin Linux’u sonsuza kadar %5’in altında pazar payına mahkûm eden tek faktör olduğunu düşünmeye devam ettim
Sorun yalnızca metin girişi değil, tüm deneyim karmaşık. Nüfusun %95’i sadece drone uçurmak istiyor; onların önüne etiketsiz bir Concorde kokpiti koymak gibi
https://qph.cf2.quoracdn.net/main-qimg-2566f4c91b894e4169d77..., https://media.thedroningcompany.com/images/tincy/WQZpC56vqMp...
Ubuntu’nun arkasında bir Concorde kokpiti olması ve iş için kullandığım Ubuntu dizüstümde oraya erişebilmem bence aksine minnet duyulacak bir şey. O düzeyde denetimim olmasa hoşuma gitmezdi
Öte yandan annemin dizüstü de Ubuntu, kız arkadaşımın dizüstü ise Manjaro; ikisi de Concorde kokpitine hiç adım atmadan sadece “drone uçurarak” gayet iyi kullanıyor. Tabii ben Arch kullanıyorum
Terminal geliştiricilerin ve sistem yöneticilerinin aracıdır. Masaüstü GNU/Linux kullanıcılarının çoğu geliştirici ve sistem yöneticisi olduğu için öyle görünür; bunlar da nüfusun ancak birkaç yüzdesidir
Tuhaf kısayolların çoğunu bilmeniz gereken yer daha çok macOS terminali; orada her şey mümkün olduğunca daha az sezgisel yapılmış
Muhtemelen popüler olmayan bir görüş olacak ama iTerm2’de Natural text editing ön ayarına geçip geleneksel macOS düzenleme kısayollarıyla uyumlu hale getirdim
Terminal uygulamasının içinde genelde denetim dizilerine yeniden eşlendiği için, birçok yerde ayar değiştirmeniz ya da readline desteğini dert etmeniz gerekmeden neredeyse her yerde bu işlevleri elde etme avantajı var
Kusursuz değil; ara sıra elle girmem gereken dizilerin yeniden eşlendiği oldu, ama kas hafızama uyduğu için komut düzenlemeyi çok daha fazla kullanır oldum
https://pliszko.com/blog/post/2021-10-31-natural-text-editin...
Terminalde metin düzenlemenin özel bir şekilde davranmasını istemiyorum
İnsanlar bilse hayatlarını iyileştirecek üç temel readline tuş ataması Ctrl+W, Ctrl+O, Ctrl+R
Ctrl+W, Julia’nın yazıda belirttiği gibi son kelimeyi siler
Ctrl+O, geçmişten çağrılan satırı çalıştırır ve ardından geçmişteki sonraki satırı tekrar çağırır. Geçmişte ilk komuta gidip Ctrl+O’ya beş kez basarsanız beş komutu sırayla çalıştırabilirsiniz
Ctrl+R, arama dizgesini yazarken geçmişte geriye doğru arama yapar. Ctrl+R’ye tekrar basarsanız önceki sonuca, Ctrl+S ise zaman açısından ileriye gider. Enter veya Ctrl+O ile çalıştırırsınız
İleriye doğru arama için o tuş kombinasyonunu kullanmak istiyorsanız, neden çalışmadığını bilmeniz ve XOFF’u kapatmaya istekli olmanız gerekir
Windows Terminal’da Ctrl+C her zaman doğru çalışır. Metin seçiliyken kopyalar, seçili değilken çalışan süreci sonlandırır
Linux’taki terminal uygulamaları Ctrl+C ile kopyalama yapmaz, Ctrl+Shift+C ister. Yapıştırmak için Ctrl+V’ye basınca da garip karakterler girilir; diğer tüm uygulamalarda Ctrl+V olduğu için kas hafızası yüzünden sürekli yakalanırsınız
Windows Terminal gibi davranıp “uygunsuz teletayp kullanımı” diye elinizin üstüne vurmayan bir Linux terminal uygulaması var mı merak ediyorum
Bu yöntem ayrı bir Xorg tamponu kullandığından, Ctrl+C ile bir şeyi kopyaladıktan sonra başka bir metin seçseniz bile Ctrl+V ilkini yapıştırır, orta tıklama ise ikincisini yapıştırır
Windows’ta veya akıllı telefonda, bir şeyi sadece seçip Ctrl+C gibi bir şeye basmayı unuttuğum için sinir olduğum zamanlar oluyor
Linux terminalleri arasında Windows Terminal gibi yapan pek yoktur sanırım. Çünkü terminal içinde çalışan program Ctrl+C’yi doğrudan işlemek isteyebilir. Metin düzenleyiciler buna örnektir; terminal o anda hangi programın çalıştığını da bilmez. İş denetimi kabuğun görevidir
map ctrl+c copy_or_interruptkullanmak yeterlihttps://sw.kovidgoyal.net/kitty/actions/#action-copy_or_inte...