Kıvrık ayracı açmadan önce yanlışlıkla boşluk bırakmaya nasıl devam edebilirim?


20

Bunun garip bir soru olduğunun farkındayım ve bunu göndermek için doğru forum bile olmayabilir. Ancak bu birkaç yıldır bir sorun olmuştur.

Zaman zaman, diyelim ki ayda bir kez, programladığımda, kıvırcık bir ayraç açmadan önce normal bir alan yerine No-Break alanı ekliyorum.

Bu yazarken söyleyelim () {

Bu gizemli tüy bırakmayan böceklere yol açar. Geçerli olmayan CSS yan tümceleri. Ben hatırlayana kadar bu olabilir.

Bildiğim kadarıyla, bu sadece vim'de olur, ancak ana editörüm olduğu için asla başka bir yazılımda olmamış olabilir. Ama son işlerimdeki hiçbir iş arkadaşımın benimle aynı klavye düzenini kullanmasalar bile bu problemi yaşamadılar. Vim'i düzenli olarak kullanan tek kişi benim, bu yüzden buraya gönderiyorum ...

Bu bana en azından ubuntu 14.04, 16.04 ve mac os x'de oldu.

:set list açıklamıyor.

Bir Fransız-Kanada klavye düzeni kullanıyorum, yani ayraç karakteri alt + `tuşlarına basarak yapılır

Bu sorunlardan çok sıkıldım, unutmaya devam etmem yeterince seyrek.

Bana bunun neden devam ettiğini söyleyemiyorsanız, bu karakteri belli bir şekilde vurgulamak için bir çeşit yapılandırma uygun bir cevap olacaktır ve bu soruna gerçekten yardımcı olacaktır.


Michael'ın önerdiği gibi tuş bağlantılarınızı değiştirebilirsiniz: superuser.com/a/142573
user12125

Bu yüzden saçma sapanlarımı sonunda İsveçli'den Amerikalıya kalıcı olarak değiştirdim. İngilizce + C + Perl + Bash + Vim yazmak için komik å, ä ve ö harflerini yazmaktan daha fazla zaman harcıyorum. Bunlar bir oluşturma anahtarı kullanılarak kolayca üretilir.
boru

Yanıtlar:


24

Diğerleri zaten çalışma ortamı sağladılar, ancak bunun nedenine gelince, yanlışlıkla Alt+ tuşuna bastığınıza bahse girerim Space.

Xubuntu'yu 105 tuşlu Fin klavye düzeniyle kendim kullanıyorum, bu yüzden benim için yazmak + {tuşuna basmak anlamına geliyor . Sadece xfce4-terminalinde (bash komut satırında) hızlı bir test yaptım ve + tuşuna basmak gerçekten kesintisiz bir alan (U + 00A0) üretir.AltGr7AltGrSpace

Bahse girerim Alt, parantezin yazılması beklentisiyle tuşa bastığınız ve bazen boşluk çubuğuna basmadan önce , kırılmayan bir alan yaratarak gerçekleşiyor. Ve normal bir alanla özdeş göründüğü için, gizemli bir şey kırılmadan önce gerçekleştiğini fark etmiyorsunuz, bunun gerçekleştiğini fark etmenizi zorlaştırıyor ve böylece bu alışkanlığı öğrenmeyi zorlaştırıyorsunuz.


Oooh bunu yarın işte deneyeceğim. Kıvırcık parantezimin önüne her zaman bir boşluk koydum, Zaman zaman parmağımı shift tuşunda çok erken olurdu!
Sarumanatee

2
@Sarumanatee: Linux'ta nbsp karakterini tamamen devre dışı bırakabilirsiniz. Belki de Ubuntu'nun klavye yöneticisinin bunun için bir seçeneği var. Değilse, /usr/share/X11/xkb/symbols/usaramayı bitirdikten setxkbmap usveya tercih ettiğiniz herhangi bir dilden sonra klavye haritasını kendiniz ayarlayabilirsiniz (bu, bir satırı silme meselesidir, sistemimde anahtar haritası olurdu )
unperson325680

@progo EVET. Şu anda macos'tayım ve klavyemin en sol alt köşesi varsayılan olarak "fn" olduğu için klavye düzenine ince ayar yapmak için Karabiner'i kullanıyorum, ki bu tamamen aptal olduğuna inanıyorum. Oraya check-in yapmak için bana ilham verdin ve tüm kırılmayan alanları normal alana değiştirme seçeneği var
Sarumanatee

Ve bu seçenek @Ilmari Karonen'in önerisini doğrular, çünkü bu karabiner seçeneği nbsp: option + space ve option + shift + space oluşturma komutlarını görüntüler. Her ne kadar ortaya çıkıyor olsa da, sonunda gerçekten vim ile ilgili değildi!
Sarumanatee

Ilmari Karonen haklı, bu yüzden bu açıklama ile ilgili değil, sadece geçici çözümümü tanımlamak için. Sıradan alandan gözle görülür şekilde farklı olması için, kırılmayan alanı Hata vurgulama grubuna bağlayan bir sözdizimi eşlemesi ekledim. Aynı şey yumuşak kısa çizgi ve kırılmayan kısa çizgi için de geçerlidir (bunlar bazen kodun aksine metinde kasten kullandığım için iki farklı vurgu grubuna bağlıdır).
bpj

19

Belirli dosya türlerini kaydettikten sonra, kesilmeyen boşlukları normal alanlarla değiştiren bir otomatik komut ekleyebilirsiniz, örn. vimrc'nize böyle bir şey koyarak:

augroup RemoveSpaces
  autocmd!
  autocmd BufWritePre *.css silent! :%s/\%u00A0/ /g
augroup end

Daha fazla dosya türü ekleyerek veya bir işaret belirleyip değiştirme işleminden sonra ona geri dönerek ince ayar yapabilirsiniz, aksi takdirde değiştirme yapılan son satırın başlangıcına itilirsiniz.


Ohh bu oldukça akıllı. Bu kadar sık ​​gerçekleşmediği için itici yerler olmak umrumda değil ve hata ayıklamak için zaman harcamaktan çok daha az can sıkıcı!
Sarumanatee

13

Bu 'listchars'seçenek, 'list'ekranın kırılmaz boşluklar oluşturması için bir araç sağlar . Varsayılan olarak ayarlanmadığından, muhtemelen eklemek istersiniz.

set listchars+=nbsp:‗

Gerçekten yardımcı olur. Sanırım nbsp char'ı her zaman vurgulamayı öğrenmeye çalışacağım, yazarken denemek ve yakalamak için: o
Sarumanatee

2
@Sarumanatee Satırı kendinize eklerseniz, vimrcaslında yazarken bunları vurgulayın.
Tumbler41

1

evet, bu muhtemelen alt + boşluk, boru operatörünü kullandığımda bana çok şey oluyor:

cat xyz.txt | grep abc

alt tuşunu çok uzun tutarsanız, boru ve bash "grep" komutunu bulmaya çalıştıktan sonra size grep'in bulunmadığını söyleyecek kırılmaz bir alan yaratacaktır.

macos'ta tuş eşlemini değiştirmek için bazı hileler vardı, bu yüzden kırılmayan bir boşluk eklediğinizde, bir normal ile dönüştürülür / değiştirilir. hatırladığım kadarıyla, tüm harita için tuş haritası değiştirildi, bu yüzden tüm uygulamalarda sorununuzu düzeltir.


alt + space'in Vim ile ilgisi yoktur. Varsayılan olarak (olduğu gibi: kullanıcı eşlemesi yok), çoğu sistemde alt + space, Vim'de ekleme modundan çıkacak bir Esc içeren bir kaçış oluşturur. Ve bu bir sorun. Kesintisiz alan, sisteminizdeki bazı giriş veri yollarının veya giriş yöneticilerinin bir sonucudur, Vim / Gvim bunu asla görmez.
grochmal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.