GÖRSEL - EDİTÖR - fark nedir?


182

Genellikle her iki set VISUALve EDITORaynı şey ortam değişkenleri, ama ne fark eder? Onları neden farklı ayarlayayım? Uygulamalar geliştirirken, neden bakmak seçmeliyim VISUALönce EDITORya da tam tersi?

Yanıtlar:


145

EDITOREditör (eski gibi "gelişmiş" terminal fonksiyona kullanmadan çalışmak gerekir edveya exmodu vi). Teletype terminallerinde kullanıldı.

Bir VISUALeditör viveya gibi bir tam ekran editörü olabilir emacs.

Örneğin, bash (kullanarak C-x C-e) aracılığıyla bir editör çağırırsanız , bash ilk VISUALeditörü deneyecek ve sonra VISUALbaşarısız olursa (terminal bir tam ekran editörü desteklemediği için ) çalışacaktır EDITOR.

Günümüzde, gidebilirsin EDITORayarlanmazsa veya ayarlayın vi -e.


9
Çoğu uygulama $VISUAL, (kabuk alıntı) dosya adını ekledikleri bir kabuk pasajı gibi davranır , ancak bazıları onu arayabilecekleri ya da aramayacakları bir yürütülebilir dosya adı olarak görürler $PATH. Bu nedenle , çalıştırılabilir bir dosyanın tam yoluna VISUAL(ve EDITOR) ayarlamak en iyisidir ( örneğin, seçenekler istiyorsanız bir sarmalayıcı komut dosyası olabilir).
Gilles,

4
Modern zamanlarda edve benzerleri çok popüler değil , bu yüzden sadece görmezden gelip VISUALkullanmanın uygun olduğuna inanıyorum EDITOR.
Pavel Šimerda

13
C-x C-eBash hakkında ipucu için teşekkürler . Çok kullanışlı.
mndrix

5
@ PavelŠimerda, sadece ayar EDITORyeterli değil, örneğin gitUbuntu 12.04 için. Olmadan VISUALset olmak gityoksaydıklarınız EDITORve sadece kullanımları nano(varsayılan derlenmiş, sanırım).
maxschlepzig

5
@ PavelŠimerda Bu mantıklı değil, ama kongre. EDITOR eskiden öğretime dayalı editörler içindi ed. GUI'leri olan editörler ortaya çıktığında - ve GUI ile, CLI GUI'yi (vim, emacs, vb. Düşünün) düşünürüm, masaüstü ortamı GUI'sini kastetmiyorum - düzenleme işlemi çarpıcı bir şekilde değişti, bu nedenle başka bir değişkene duyulan ihtiyaç ortaya çıktı. Bu bağlamda, CLI GUI ve masaüstü ortamı GUI editörleri aşağı yukarı aynıdır, böylece VISUAL seçeneğini şu şekilde ayarlayabilirsiniz; Ancak, EDITOR temelde farklı bir iş akışı içindir. Tabii ki, bunların hepsi tarihi. Bugünlerde kimse ed kullanmıyor.
Zenexer

32

Kabul edilen cevap muhtemelen iyi ve kısa bir muameledir, ancak bu VISUAL ve EDITOR arasındaki farkın hala önemli olabileceği durumlarda ( Adam Katz'ın cevabına dayanarak ) daha da derine inme girişimi olacaktır .

POSIX özelliği, görsel mod düzenleyicileri ile satır düzenleyicileri arasında ayrım yapar. Bu, seri bağlantıların üzerine imlecin konumlandırılmasının zor olduğu günlerde çok önemliydi (özellikle seri bağlantının hızı nedeniyle). Vi Ara madde VI (a, görsel modu editör) ve ex (bir satır editör) arasındaki ayrım bazı yararlı arka plan verir. Araştırmada yeterince derinlere inerseniz, "ex" belirtiminin "RATIONALE" bölümünü bulabilirsiniz ; bu, hala özellikte bulunmamasına neden olur:

Vi bölümlerinin, blok modlu bir terminalde veya herhangi bir imleç adresleme biçimi olmayan bir terminalde tatmin edici bir şekilde uygulanması imkansız olmasa da zor olacağı kabul edilir, bu nedenle bu özelliklerin tüm terminallerde çalışması zorunlu değildir. . Bununla birlikte, bir vi uygulamasının, onları destekleyebilecek tüm terminallerde tam bir yetenek seti sunması amaçlanmaktadır.

Benim 300 baud modem vazgeçerek beri bu gerekli değildir, ama ben yavaş seri hatlarını kullanan herkes (ve / veya gerçekten şüpheli bağlantıları üzerinden) gömülü sistemlere bağlanmak için tahmin edebilirsiniz belki hala tercih edilen bir hat modu var edememek takdir editör vi gibi bir "görsel" editörden farklı. VT100 tarzı terminal kayıplı, gecikmeli, dar bir bağlantı üzerinden kodlanmış, sınırlı uygulamalarda "şişirilebilir" olabilir.

Geri kalanımız için, "doğru" cevap, "ikisini de tercih ettiğiniz editör olarak ayarlamanız" gibi görünüyor. Bir terminal penceresi düzenleyicisine (örneğin vi veya emacs) karşı yerel / grafiksel editör (örneğin, Sublime veya gvim) için bu ayrımı bir arada kullanmak uygun olabilir, ancak bunun muhtemelen neden beklendiği gibi çalışmamasını sağlamak için eski sebeplerden oluşan bir dağ vardır. .


2

Bazı araçlar yalnızca EDITOR'u kabul eder, örneğin shell yerleşik fc :

-e ENAME  select which editor to use.  Default is FCEDIT, then EDITOR, then vi

1

Bunun $VISUALgrafiksel ve $EDITORkomut satırı olduğu sonucuna vardım . Tanımsız ise, herhangi bir şey arayan $VISUAL olmalıdır sonra deneyin $EDITORyanındaki.

( Alıntı gerekli: Uygun belgeleri almak isterdim, belki bir man sayfası veya POSIX belirtimi?)

Şu anda, ben benim, böyle şeyler var ~/.bashrcve ~/.zshrc:

EDITOR="$(command -v vim)"

# we have gvim, not in an SSH term, and the X11 display number is under 10
if command -v gvim >/dev/null 2>&1 \
&& [ "$SSH_TTY$DISPLAY" = "${DISPLAY#*:[1-9][0-9]}" ]; then
  export VISUAL="$(command -v gvim) -f"
  SUDO_EDITOR="$VISUAL"
else
  SUDO_EDITOR="$EDITOR"
fi

gvimolmadan -fdüzenlemelerinizde hareket etmeyi bekleyen programlarla çalışmazsınız. Bu kesinlikle sudoeditor( sudo -e) içerir .

Vim'e giden yolda boşluk varsa bu bozulabilir. Bu bir problemse, düzgün bir şekilde kurun ya da benzeri sembolik linkleri düşünün./usr/local/bin/gvim


Kullanılıp kullanılmayacağı $VISUAL, imleç konumlandırma yeteneğine sahip bir terminale sahip olup olmadığına, mevcut bir pencere sisteminizin olup olmadığına bağlıdır.
Radon Rosborough

Ah, harika! Bunun için kesin bir referans bağlantısı sağlayabilir misiniz? Sanırım ayrıca kontrol ettiğimden beri kodum hala güvende $DISPLAY, ama bunu bilmek güzel.
Adam Katz

Boşver, cevabımdan bile bahseden Robla'nın cevabında böyle bir referans var gibi görünüyor .
Adam Katz

0

Vi ya da benzerlerinin başarısız olacağı herhangi bir ortam olmadığı için, VISUAL ayarını X DISPLAY ve EDITOR çıkacak bir şeye ayarlıyorum.

Çoğunlukla, bazı programlar VISUAL kullanmadığında bu sadece sorunlara neden oluyor gibi görünüyor.

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.