Emacs Öğretici
Sürüm Bilgileri
Sürüm 1 | 2006 | AÇ |
İlk sürüm. |
Özet
Bu belge, emacs metin düzenleyicisinin TUTORIAL isimli dosyasının çevirisidir.
Aşağıdaki metni (= imli ilk ve son satır hariç) herhangi bir metin düzenleyici içine kopyaladıktan sonra TUTORIAL ismiyle ev dizininize kaydedip emacs'ı başlatın. Ctrl-h t tuşladığınızda aşağıdaki metin gelmiyorsa, Ctrl-x Ctrl-f yapın ve Find File: satırına ~/TUTORIAL yazıp emacs öğrenmeye başlayın.
Bu dosyada anlatılan herşey Q klavyeye göredir. F klavye kullanımı için neler yapılması gerektiğini F klavyeli bir emacs kullanıcısı yazarsa burada yayınlarız (Sanırım F klavye kullanıcıları için kolay kullanılır başka tuşların atanması ve buna uygun ayrı bir TUTORIAL gerekecek).
============================================================================== Emacs dersini izliyorsunuz. Bu belgenin kopyalanma koşulları ile ilgili bilgi edinmek için en sona bakabilirsiniz. Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. Ali Çehreli <acehreli (at) yahoo.com>, 2006 Emacs komutları, genellikle CONTROL tuşu (CTRL veya CTL da olabilir) veya META tuşu (EDIT veya ALT da olabilir) ile verilir. Bunları dersin geri kalanında bütünüyle yazmak yerine şu kısaltmaları kullanacağız: C-<kar> <kar> karakterini CONTROL tuşu basılıyken yazın Yani, C-f şu anlama gelecek: CONTROL tuşunu basın ve f yazın. M-<kar> <kar> karakterini META, EDIT veya ALT tuşu basılıyken yazın Eğer META, EDIT veya ALT tuşu yoksa; bunun yerine önce ESC tuşuna basıp bırakın, ondan sonra <kar> karakterini yazın. Biz ESC tuşunu göstermek için <ESC> yazacağız. [Çevirenin notu: Çoğu modern ortamda META karakteri yerine klavyenin sol tarafındaki Alt tuşu kullanılır.] Önemli not: Emacs'ten çıkmak için C-x C-c yazın. (İki karakter.) Sol kenardaki ">>" karakterleri, size ders sırasında bir komut denemenizi bildirmek için kullanılacaklar. Örneğin: <<Blank lines inserted around following line by help-with-tutorial>> [Burası anlatım amacıyla boş bırakılmıştır. Yazı aşağıda devam ediyor.] >> Şimdi bir sonraki ekrana geçmek için C-v yazın. (haydi, CONTROL tuşu basılıyken v yazın). Bundan böyle ekrandaki yazıyı bitirdiğinizde, hep böyle yapın. Bir önceki ekranın sonundaki iki satırın bir sonraki ekranda da gösterildiğini gördünüz mü; bu, yazıyı kesintisiz okuyabilmeniz için özellikle yapılmıştır. İlk olarak öğrenmeniz gereken, yazı içinde bir yerden başka bir yere nasıl gidileceğidir. Sonraki ekrana C-v ile gidildiğini zaten öğrendiniz. Geriye doğru bir ekran gitmek için M-v yapılır (META tuşu basılıyken v yazın; eğer META, EDIT, veya ALT tuşunuz yoksa <ESC>v yazın). >> Bir kaç kere M-v ve C-v yazmayı deneyin. * ÖZET ------ Bütün bir ekran dolusu yazıyla ilgili olarak şu komutlar yararlıdır: C-v Bir ekran ileri git M-v Bir ekran geriye git C-l Ekranı sil ve yazıyı imleç ekranın tam ortasinda olacak şekilde tekrar göster. (Not: Buradaki tuş dizisi CONTROL-L olacak, CONTROL-1 değil.) >> İmleci bulun ve hangi satırda olduğuna dikkat edin. Ondan sonra C-l yazın. İmlecin yine aynı satırda olduğunu göreceksiniz. Eğer terminaliniz destekliyorsa, bir ekran geriye ve ileriye gitmek için PageUp ve PageDn tuşlarını da kullanabilirsiniz; ama C-v ve M-v yazmak daha etkindir. * TEMEL İMLEÇ HAREKETLERİ ------------------------- Ekran ekran ilerlemek yararlıdır, peki ama yazı içinde belirli bir yere nasıl gidilir? Bunun bir kaç yolu vardır. Ok tuşlarını kullanarak ilerleyebilirsiniz, ama ellerinizi klavye harfleri üzerinde tutarak C-p, C-b, C-f, ve C-n komutlarını kullanırsanız daha hızlı olur. Bu karakterler, dört ok tuşuna şu şekilde karşılık gelirler: Önceki satıra, C-p : : Geriye, C-b .... İmlecin yeri .... İleriye, C-f : : Sonraki satıra, C-n >> İmleci C-n veya C-p ile yukarıdaki şeklin ortasındaki satıra götürün. Ondan sonra şekli ekranın ortasında ortalamak için C-l yazın. Burada kullanılan harfler İngilizce'deki şu sözcüklere karşılık gelirler: P previous (önceki), N next (sonraki), B backward (geri), F forward (ileri). Bu temel imleç komutlarını hep kullanacaksınız. >> İmleci bu satıra indirmek için bir kaç tane C-n yazın. >> Satırın ortasına doğru C-f'lerle ilerleyin ve sonra C-p'lerle yukarıya gidin. İmleç satırın ortasındayken C-p'nin ne yaptığına bakın. Her satırın sonunda, onu bir sonraki satırdan ayırmaya yarayan bir satır sonu karakteri vardır. Metnin sonuncu satırının sonunda da bir satır sonu karakteri olması gerekir (ama bunu Emacs şart koşmaz). >> Bir satırın başındayken C-b yapmayı deneyin. İmleç bir önceki satırın sonuna gidecektir. Bunun nedeni, iki satırı ayıran satır sonu karakterinin üzerinden atlamasıdır. C-f de satır sonu karakterlerinin üzerinden atlayabilir. >> İmlecin hareketine alışmak için bir kaç tane C-b yapın. Ondan sonra C-f'ler yaparak satırın sonuna gidin. En sonunda bir tane daha C-f ile bir sonraki satıra geçin. Ekranın üstünü veya altını geçecek şekilde ilerlerseniz, ekran sınırının dışında kalmış olan yazılar ekrana girmeye başlarlar. Buna ekranın kaydırılması denir. Böylece Emacs imleci belirtilen satıra ekrandan çıkartmadan götürebilmiş olur. >> C-n komutu ile imleci ekranın alt tarafından çıkartmaya çalışın ve ne olduğuna bakın. Karakter karakter ilerlemenin çok yavaş kaldığı durumlarda, sözcük sözcük de ilerleyebilirsiniz. M-f (META-f) bir sözcük ileriye, M-b de bir sözcük geriye gider. >> Bir kaç kere M-f ve M-b yazın. M-f, imleç bir sözcüğün ortasındayken o sözcüğün sonuna gider. Sözcükler arasındaki boşlukta dururken M-f bir sonraki sözcüğün sonuna gider. M-b de benzer şekilde ama diğer yöne doğru işler. >> Aralarda C-f ve C-b yazacak şekilde bir kaç tane M-f ve M-b yazın. Böylece M-f ve M-b'nin sözcükler üzerinde ve aralarında nasıl işlediklerini görebilirsiniz. C-f ve C-b'nin M-f ve M-b ile olan ilişkisine dikkat edin. Meta karakterleri çoğu zaman, dil tarafından tanımlanmış olan birimlerle (sözcük, cümle, paragraf) ilgili olarak kullanılırlar. Öte yandan, Control karakterleri düzenlemekte olduğunuz metinden bağımsız olarak, temel birimlerle (karakter, satır, vs.) ilgilidirler. Bu ilişki satır ve cümlelerde de görülür: C-a ve C-e satır başına ve sonuna gitmek için, M-a ve M-e de cümle başına ve sonuna gitmek için kullanılırlar. >> Bir kaç tane C-a ve bir kaç tane C-e deneyin. Bir kaç tane de M-a ve bir kaç tane M-e deneyin. Tekrarlanan C-a'ların etkisiz olduklarına, ama tekrarlanan M-a'ların sonraki cümlelere ilerlediklerine dikkat edin. Tam olarak benzer olmasalar da yine de davranışları doğal kabul edilebilir. Basit imleç hareketlerinin listesi: C-f Bir karakter ileriye C-b Bir karakter geriye M-f Bir sözcük ileriye M-b Bir sözcük geriye C-n Bir sonraki satıra C-p Bir önceki satıra C-a Satırın başına C-e Satırın sonuna M-a Cümlenin başına M-e Cümlenin sonuna >> Alışkanlık kazanmak için bu komutları bir kaç kere deneyin. En sık kullanacağınız komutlar bunlar olacaktır. Önemli başka imleç komutları, bütün yazının en başına götüren M-< (META ve "küçüktür" işareti) ve bütün yazının en sonuna götüren M-> (META ve "büyüktür" işareti) komutlarıdır. "<" karakteri çoğu terminalde virgülün üstünde gösterildiği için, onu yazabilmek için önce Shift tuşuna basmak gerekir. Aynı şekilde, M-< yazabilmek için de Shift tuşuna basmak gerekir; yoksa M-virgül olarak anlaşılır. >> Dersin başına gitmek için M-< yazmayı deneyin. Sonra gerekli sayıda C-v yazarak tekrar buraya gelin. >> Dersin sonuna gitmek için M-> yazmayı deneyin. Sonra gerekli sayıda M-v yazarak tekrar buraya gelin. Eğer terminalinizde varsa, imleci ok tuşlarını kullanarak da ilerletebilirsiniz. Biz üç nedenden ötürü C-b, C-f, C-n ve C-p komutlarını öğrenmenizi öneririz. Birincisi, bunlar bütün terminallerde çalışırlar. İkincisi, Emacs'e alıştıkça bu Control karakterlerinin ok tuşlarından daha çabuk olduklarını göreceksiniz (çünkü bunları kullanırken ellerinizi on parmak daktilo yazma durumundan çekmek zorunda kalmazsınız). Üçüncüsü, bu Control karakterlerini kullanmaya alışırsanız, ileri düzey imleç komutlarını öğrenmek daha kolay olacaktır. Çoğu Emacs komutu sayısal bir bağımsız değişken alır; çoğu durumda bu bağımsız değişken bir işlemin kaç kere tekrar edileceğini belirler. Komutun kaç kere tekrarlanacağını, komutu yazmadan önce C-u yazarak ve tekrar sayısını girerek belirlersiniz. Eğer META (veya EDIT veya ALT) tuşunuz varsa, tekrar sayısını girmenin başka bir yolu daha vardır: tekrar sayısını META tuşu basılıyken yazmak. Biz C-u yöntemini öneririz; çünkü her terminalde çalışır. Bu sayısal bağımsız değişkene, komuttan önce belirtildiği için "ön bağımsız değişken" de denir. Örneğin, C-u 8 C-f sekiz karakter ileri gider. >> Bu satıra tek bir komutla gelebilmek için C-n veya C-p komutunu bir sayısal bağımsız değişken ile birlikte kullanmayı deneyin. Çoğu komut sayısal bağımsız değişkeni tekrar sayısı anlamında kullansa da; bazı komutlar farklıdır. Daha öğrenmediğiniz bazı komutlar, bu bağımsız değişkeni bir "bayrak" olarak kullanır. Değerine bakılmaksızın bağımsız değişkenin verilmiş olması, o komutların başka şekilde işletilmelerine neden olur. C-v ve M-v bu konuda başka tür bir istisna oluştururlar. Bağımsız değişken kullanıldığı zaman; ekranı bütünüyle değil, belirtilen sayıda satır olarak kaydırırlar. Örneğin, C-u 8 C-v ekranı 8 satır kaydırır. >> C-u 8 C-v yazmayı deneyin. Ekranın yukarıya doğru 8 satır kaydırılmış olması gerekir. Eğer tekrar aşağıya doğru kaydırmak isterseniz, M-v komutunu bağımsız değişken ile kullanabilirsiniz. Eğer X11 veya MS-Windows gibi görsel bir ortamda çalışıyorsanız, Emacs penceresinin sol tarafında "kaydırma çubuğu" denen ince uzun dikdörtgen bir alan olması gerekir. Fareyi kaydırma çubuğunda tıklayarak da yazıyı kaydırabilirsiniz. >> Farenin orta tuşunu kaydırma çubuğunun belirginleştirilmiş olan bölümünün üst tarafında tıklamayı deneyin. Yazı, tıkladığınız yerin ne kadar yukarıda veya aşağıda olduğuna bağlı olarak kaydırılacaktır. >> Fareyi orta tuşu basılıyken yukarıya ve aşağıya doğru hareket ettirin. Yazının farenin hareketine bağlı olarak yukarıya veya aşağıya doğru kaydırıldığını göreceksiniz. * EMACS TAKILIRSA ----------------- Emacs komutlarınıza yanıt vermiyorsa onu C-g ile güvenli bir şekilde durdurabilirsiniz. C-g'yi çalışması fazla uzun süren bir komutu durdurmak için kullanabilirsiniz. C-g'yi işletmekten vazgeçtiğiniz bir komutun sayısal bağımsız değişkenini iptal etmek için de kullanabilirsiniz. >> Önce 100 değerinde bir sayısal bağımsız değişken vermek için C-u 100 yazın, sonra C-g yazın. Şimdi de C-f yazın. C-g ile bağımsız değişkeni iptal ettiğiniz için, imleç bir karakter ilerleyecektir. Eğer yanlışlıkla <ESC> tuşuna basarsanız, onu da C-g ile iptal edebilirsiniz. * KAPALI KOMUTLAR ----------------- Bazı Emacs komutları yeni başlayanların yanlışlık yapmalarını önlemek için "kapatılmışlardır". Bu kapalı komutlardan birisini yazarsanız, Emacs komutun ne olduğunu bildirir ve komutu çalıştırmak isteyip istemediğinizi sorar. Eğer komutu gerçekten çalıştırmak istiyorsanız, soruya yanıt olarak boşluk tuşuna basın. Eğer komutu çalıştırmak istemiyorsanız, soruya "n" yanıtını verin. >> Kapatılmış bir komut olan C-x C-l komutunu verin ve sorulan soruya n yazın. * PENCERELER ------------ Emacs, içinde değişik metinler görünen çok sayıda pencere açabilir. Birden fazla pencerenin nasıl kullanıldığını daha sonra açıklayacağız. Önce böyle çok sayıdaki pencereden kurtulup nasıl tekrar tek pencereye dönüleceğini göstereceğiz. Çok kolay: C-x 1 Tek pencere ("diğer pencereleri kapat" anlamında). Yani CONTROL-x ve arkasından 1 tuşu... C-x 1, imlecin o anda içinde bulunduğu pencerenin büyütülmesini sağlar; diğer pencereleri kapatır. >> İmleci bu satıra getirin ve C-u 0 C-l yazın. >> CONTROL-h k CONTROL-f yazın. Bu pencere küçülecek ve içinde CONTROL-f komutunun belgesi bulunan yeni bir pencere açılacaktır. >> C-x 1 yazın; belge penceresinin kaybolduğunu göreceksiniz. Bu komut, daha önce öğrendiğiniz komutlardan farklı olarak, iki karakter içermektedir. CONTROL-x karakteriyle başlar. CONTROL-x karakteriyle başlayan çok sayıda komut vardır; bu komutlar çoğunlukla pencereler, kütükler ve ara belleklerle ilgilidirler. Bu komutlar iki, üç veya dört karakter uzunluğunda olabilirler. * YAZMA VE SİLME ---------------- Yazmak için tuşlara basmanız yeterlidir. Emacs, A, 7, *, vs. gibi gözle görünen karakterleri normal yazı olarak kabul eder ve oldukları gibi yazının içine yerleştirir. Yeni bir satıra geçmek için <Enter> (veya <Return>) tuşuna basılır. Yazdığınız son karakteri <Backspace> tuşu ile silebilirsiniz. <Backspace>, normalde Emacs dışında da aynı amaçla kullandığınız bir tuştur. Klavyenizde <Enter> (veya <Return>) tuşunun bir iki sıra yukarısında bulunur, ve çoğunlukla diğer tuşlardan daha büyüktür. Bazı klavyelerde üstünde yalnızca sol tarafı gösteren bir ok bulunur. Klavyenizde üzerinde <Delete> yazan bir tuş daha bulunabilir. <Backspace> o tuş değildir. <Backspace> imleçten hemen önceki karakteri siler. >> Bunu deneyin; bir kaç tane karakter yazın ve onları yeterince sayıda <Backspace> tuşuna basarak silin. Bu belgeyi bozmaktan korkmayın; asıl kopyayı değiştirmiş olmayacaksınız. Bu gördüğünüz, sizin kişisel kopyanızdır. Eğer yazı içindeki bir satır ekrana sığmayacak kadar uzunsa, o yazı satırı bir sonraki ekran satırında devam eder. Bu durum, sağ kenarda görünen bir ters bölü karakteri ("\") (veya görsel ortamlarda kıvrık bir ok işareti) ile belirtilir. >> Ekranın sağ tarafına yaklaşana kadar bir şeyler yazın. Sonra biraz daha yazarsanız, bir sonraki ekran satırına geçtiğinizi göreceksiniz. >> Satırı <Backspace>ler kullanarak kısalttığınızda ise, o "devam satırı"nın ortadan kalktığını göreceksiniz. Satır sonu karakterlerini de diğer karakterler gibi silebilirsiniz. İki satır, aralarındaki satır sonu karakteri silindiğinde, tek bir satır olarak birleştirilir. Eğer sonuçta oluşan satır ekrana sığamayacak kadar uzunsa, yine bir sonraki ekran satırında devam eder. >> İmleci bir satırın başına götürün ve <Backspace>e basın. Bu işlem satırı bir öncekiyle birleştirir. >> Tekrar bir satır sonu karakteri eklemek için <Enter> tuşuna basın. Hatırlarsanız, çoğu Emacs komutunun kaç kere tekrarlanacağını belirleyebiliyordunuz. Bu, karakterler için de geçerlidir; bir karakteri tekrarlamak, o karakterin yazıya tekrar sayısı kadar yerleştirilmesini sağlar. >> Deneyin: ******** oluşturmak için C-u 8 * yazın . Şimdi de Emacs ile bir şeyler yazmanın ve yanlışları düzeltmenin en temel komutlarını öğrenmiş oldunuz. Ek olarak, kelimeleri ve satırları da silebilirsiniz. Silme işlemlerinin bir özeti şöyle verilebilir: <Backspace> imleçten önceki karakteri sil C-d imleçten sonraki karakteri sil M-<Backspace> imleçten önceki sözcüğü yok et (Dikkat: "sil" değil, "yok et"; bkz. aşağıdaki C-BOŞLUK ile ilgili bölüm) M-d imleçten sonraki sözcüğü yok et C-k imleçten satır sonuna kadar yok et M-k imleçten cümle sonuna kadar yok et C-f ve M-f ile başlayan benzerliğin <Backspace> ve C-d arasında da bulunduğuna dikkat edin. (<Backspace>in aslında bir kontrol karakteri olmadığını şimdilik önemsemeyelim.) C-k ve M-k, C-e ve M-e gibidirler; aralarındaki fark, işlevlerinin satır veya cümlelerle ilgili olmalarıdır. Metnin herhangi bir bölümünü bir seferde de yok edebilirsiniz. Yok etmek istediğiniz bölümün bir ucuna (yani başına veya sonuna) gidin ve C-@ veya C-BOŞLUK yazın. (BOŞLUK burada boşluk tuşu anlamında kullanılmıştır.) Şimdi silinecek olan bölümün diğer ucuna gidin ve C-w yazın. Bu hareket, o iki uç arasında kalan yazıyı yok edecektir. >> İmleci bir önceki paragrafın başındaki M harfine götürün. >> C-BOŞLUK yazın. Emacs, ekranın alt tarafında "Mark set" diye bir mesaj verecektir. >> İmleci paragrafın ikinci satırındaki "bir"in sonundaki r harfine götürün. >> C-w yazın. M harfiyle başlayan ve r harfinden bir önce biten yazı parçası yok edilmiş olacaktır. "Yok etme" ile "silme" arasındaki fark, yok edilen bölümün yazıya tekrar yerleştirilebilmesidir. Yok edilmiş olan yazı parçasının tekrar yerleştirilmesine "geri getirme" denir. [Çevirenin notu: "geri getirme" ifadesini, bu yazının İngilizce aslında kullanılan ve aslında "hızla çekmek" anlamına gelen "yank" sözcüğünün karşılığı olarak kullanıyorum.] Genel olarak, yazıdan büyük miktarda karakter çıkartan komutlar o karakterleri "yok ederler" (yani onlar geri getirilebilirler). Öte yandan; tek bir karakteri veya boşlukları çıkartan komutlar onları "silerler" (yani onlar geri getirilemezler.) >> İmleci boş olmayan bir satırın başına götürün. O satırdaki yazıyı yok etmek için C-k yazın. >> Bir kere daha C-k yazın. O satırdan sonra gelen satır sonu karakterinin de silindiğini göreceksiniz. Dikkat ederseniz, birinci C-k satırdaki karakterleri yok ediyor; ikinci C-k ise satırın kendisini yok ederek sonraki satırların bir satır yukarıya kaydırılmalarını sağlıyor. C-k sayısal bağımsız değişkeni özel bir anlamda kullanır: belirtilen sayıda satırı VE içeriklerini yok eder. C-u 2 C-k iki satırı ve onların satır sonu karakterlerini siler. Bunun iki kere C-k yazmakla aynı şey olmadığına dikkat edin. Yok edilen yazıyı yok edildiği yerde veya yazı içinde başka bir yerde, ve hatta başka bir belge içinde bir yerde bile geri getirebilirsiniz. Yok edilen yazıyı birden çok sayıda da geri getirebilir ve böylece birden çok kopyasını oluşturabilirsiniz. Geri getirme komutu C-y'dir. En son yok edilen yazıyı imlecin bulunduğu yerde geri getirir. >> Deneyin; C-y'ye basarak yazıyı geri getirin. Eğer art arda C-k'ler yazarsanız, yok edilen yazılar birleştirilerek saklanırlar ve tek bir C-y ile geri getirilirler. >> Şimdi de bunu deneyin; bir kaç kere C-k yazın. Yeni yok edilen yazıyı geri getirmek için: >> C-y yazın. Sonra, imleci bir kaç satır aşağıya götürerek bir kere daha C-y yazın. Böylece nasıl yazı kopyalandığını öğrenmiş oldunuz. Geri getirmek istediğiniz bir yazı varken, başka bir yazıyı yok ederseniz ne olur? C-y hep en son yok edilen yazıyı geri getirir, ama daha önce yok edilen yazı da saklıdır. Daha önce yok edilen yazıları M-y komutu ile geri getirebilirsiniz. C-y yazarak en son yok edilen yazıyı geri getirdikten sonra M-y yazarsanız, geri gelen yazının yerini ondan bir önce yok edilen yazının aldığını görürsünüz. Peş peşe M-y yazarak, daha da önce yok edilen yazıları geri getirebilirsiniz. Geri getirmek istediğiniz yazıyı gördüğünüz zaman, ayrıca bir şey yapmanız gerekmez. Geri gelen yazıyı olduğu yerde bırakıp yazı üzerinde çalışmanıza devam edebilirsiniz. Eğer yeterince M-y yazarsanız; başladığınız noktaya, yani en son yok ettiğiniz yazıya dönersiniz. >> Bir satırı yok edin, imleci başka bir yere götürün ve bir satırı daha yok edin. C-y yaparak ikinci yok edilen yazıyı geri getirin. M-y yaparak, yeni geri getirilen yazının yerine ilk silinen yazıyı geri getirin. M-y yapmaya devam edin ve nelerin geri getirildiklerine bakın. Daha da devam ederek ikinci sildiğiniz satırın tekrar geri gelmesini sağlayın, ve biraz daha devam edin. İsterseniz M-y'ye artı veya eksi değerli sayısal bağımsız değişkenler de verebilirsiniz. * GERİ AL --------- Bir değişiklik yapar ve sonradan bunun bir hata olduğuna karar verirseniz, yaptığınız değişikliği C-x u ile geri alabilirsiniz. C-x u normalde tek bir komutun neden olduğu değişikliği geri alır. C-x u yapmayı tekrarlarsanız, her tekrar başka bir komutu geri alır. Bunun iki tane istisnası vardır: Birincisi, yazıyı değiştirmeyen komutlar sayılmazlar (imleci hareket ettirmek, yazıyı kaydırmak, vs.). İkincisi, ayrı ayrı girilmiş olan karakterler 20 taneye kadar gruplar halinde birleştirilerek geri alınırlar. (Böylece, yazılmış olan bir miktar yazıdan vazgeçmek için çok fazla C-x u yazılması gerekmemiş olur.) >> Bu satırı C-k ile yok edin. C-x u yazdığınızda tekrar belirecektir. Geri alma komutu olarak C-_ de yazabilirsiniz. Aynı C-x u komutu gibi işler ama art arda basmak için daha elverişlidir. C-_ tuşunun kötü tarafı, nasıl yazılacağının bazı klavyelerde çok açık olmamasıdır. Bazı terminallerde C-_ yerine C-/ de yazabilirsiniz. [Çevirenin notu: Aslında en kullanışlı olanı da budur.] Sayısal bağımsız değişken C-_ veya C-x u komutları için de tekrar sayısı anlamına gelir. Yok edilen yazıyı geri alabildiğiniz gibi, aslında silinen yazıyı da geri alabilirsiniz. Yok etmekle silmek arasındaki fark, bir şeyin C-y ile geri getirilip getirilememesidir. Geri alma komutu için böyle bir fark yoktur. * KÜTÜKLER ---------- Yazdığınız yazının kalıcı olması için onu bir kütüğe kaydetmeniz gerekir. Yoksa yazdığınız yazıyı Emacs'ten çıktığınızda kaybedersiniz. Yazıyı bir kütüğe kaydetmek için, yazıyı yazmadan önce kütüğü açmanız gerekir. (Buna Emacs dünyasında kütüğü "ziyaret etmek" (visit) de denir.) [Çevirenin notu: İngilizce'de "kütüğü açma" yerine "kütüğü bulma" anlamına gelen "find the file" da kullanılır.] Bir kütüğü açmak demek, onun içeriğini Emacs içerisinden göstermek demektir. Böyle olunca, sanki kütüğü değiştiriyorsunuz gibi gelebilir. Oysa Emacs içinden yaptığınız değişikliklerin kalıcı olmaları için kütüğü "kaydetmeniz" gerekir. Bunun nedeni, kütüklerin değişiklikler tamamlanmadan kaydedilmelerini önlemektir. Kütüğü kaydetseniz bile, belki daha sonradan vazgeçersiniz diye, asıl kopyasını da Emacs başka bir isim altında saklar. Ekranın alt tarafında, "--:-- TUTORIAL" karakterlerine benzer şekilde başlayan ve tire karakterleriyle son bulan bir satır vardır. Normalde ekranın o bölümü, açmış olduğunuz kütüğün adını gösterir. Şu anda Emacs dersinin size ait bir taslak kopyası olan "TUTORIAL" adlı kütük açık durumdadır. Bir kütüğü Emacs ile açtığınızda, kütüğün adı o satırda ve o noktada gösterilir. Kütük açan komutun özelliği, kütüğün adını da bildirmenizi gerektirmesidir. Böyle komutların "klavyeden bağımsız değişken aldıklarını" söyleriz (bu durumda bağımsız değişken, kütüğün adıdır). C-x C-f Kütüğü aç komutunu yazdığınızda Emacs sizden kütüğün adını da yazmanızı ister. Kütüğün adı ekranın altındaki satırda belirir. Böyle bilgi girişi için kullanıldığında ekranın alt bölümü "giriş satırı" (minibuffer) adını alır. Kütük adını yazarken de Emacs'in metin düzenleme komutlarını kullanabilirsiniz. Kütüğün adını yazarken (veya giriş satırında başka bilgiler girerken) C-g yazarak bilgi girişini iptal edebilirsiniz. >> Önce C-x C-f, sonra da C-g yazın. Böylece hem giriş satırını, hem de onu kullanmakta olan C-x C-f komutunu iptal etmiş olursunuz. Kütük açma işlemi durdurulmuştur... Kütüğün adını yazdıktan sonra <Enter>a basın. C-x C-f komutu, adını belirttiğiniz kütüğü açar. Bu komut işini bitirince giriş satırı da ortadan kalkar. Kütüğün içeriği kısa bir süre sonra ekranda belirir ve böylece değişiklikler yapılabilir. Değişiklikleri kaydetmek için C-x C-s Kütüğü kaydet komutu verilir. Bu komut, Emacs içinde tutulan yazıyı kütüğe kopyalar. Emacs'ten ilk defa kopyalandığında, tamamen kaybedilmesin diye asıl kütük de adı degiştirilerek saklanır. Kütüğün yeni adı, eski adının sonuna "~" karakterinin eklenmiş halidir. Kayıt işlemi tamamlandığında Emacs yazılan kütüğün adını gösterir. Sistemde oluşabilecek kilitlenme gibi bir durum sonucunda fazla kayıplı çıkmamak için yazdıklarınızı sık sık kaydetmeniz önerilir. >> C-x C-s yazarak size ait bir kopyası olduğunu öğrendiğiniz bu ders metnini kaydedin. Bunun sonucunda ekranın alt tarafında "Wrote ...TUTORIAL" mesajı görünecektir. NOT: Bazı sistemlerde C-x C-s, ekranın donmasına neden olabilir. Bu, "flow control" adında bir işletim sistemi olanağının devreye girdiği ve C-s komutunun Emacs'e gönderilmesine izin verilmediği anlamına gelir. Ekran kilidini açmak için C-q yazın. Daha sonra Emacs belgesinin "Spontaneous Entry to Incremental Search" adlı bölümünü okuyabilirsiniz. [Çevirenin notu: Modern ortamlarda böyle bir donma olayı ile karşılaşacağınızı sanmıyorum.] Baştan varolan bir kütüğü içine bakmak veya değişiklik yapmak için açabileceğiniz gibi, henüz varolmayan bir kütüğü de açabilirsiniz. Emacs kullanılarak yeni bir kütük oluşturma yöntemi böyledir. Kütük boş olarak başlar ve içi yazdıklarınızla dolar. Sonra kütüğü "kaydetmek" istediğinizde Emacs kütüğü içinde yazdıklarınız bulunacak şekilde oluşturur. Bu yaptıktan sonra artık varolan bir kütükle çalıştığınızı düşünebilirsiniz. * ARA BELLEKLER (BUFFERS) ------------------------- C-x C-f yaparak yeni bir kütük açarsanız, ilk kütük de Emacs'in içinde bulunmaya devam eder. C-x C-f komutu ile tekrar ona geçebilirsiniz. Böylece Emacs içinde çok sayıda kütükğü aynı anda açmış olabilirsiniz. >> C-x C-f deneme <Enter> yazarak "deneme" adında bir kütük oluşturun. İçine bir şeyler yazın, değişiklikler yapın ve "deneme"yi C-x C-s yazarak kaydedin. Sonra da C-x C-f TUTORIAL <Enter> yazarak tekrar bu derse dönün. Emacs kütüklerin içeriklerini "ara bellek" denen yerlerde tutar. Bir kütük açmak, Emacs içinde yeni bir ara bellek oluşturmak anlamına gelir. Herhangi bir anda Emacs içinde bulunan ara belleklerin bir listesini görmek için C-x C-b Ara bellek listesi komutu kullanılır. >> C-x C-b yazın. Her ara belleğin kendisine ait bir adı olduğu gibi, eğer varsa, içeriğini tuttuğu kütüğün adı da bellidir. Emacs'te gördüğünüz HER yazı parçası mutlaka bir ara belleğin bir parçasıdır. >> Ara bellek listesinden kurtulmak için C-x 1 yazın. Birden fazla ara bellek bulunması durumunda bunlardan yalnızca bir tanesi etkindir. O da içinde değişiklik yapmakta olduğunuz ara bellektir. Başka bir ara bellekte değişiklik yapmak için önce ona "geçmeniz" gerekir. Bir kütükle ilişkili bir ara belleğe o kütüğü C-x C-f ile tekrar açarak geçebilirsiniz, ama bunun daha kolay bir yolu vardır: C-x b komutunu kullanmak. Bu komut için ara belleğin adını yazmanız gerekir. >> "deneme" adlı kütüğün içeriğini tutmakta olan "deneme" adlı ara belleğe geçmek için C-x b deneme <Enter> yazın. Ondan sonra da C-x b TUTORIAL <Enter> yazarak tekrar bu derse dönün. Çoğu durumda ara belleğin adı, içinde açılı olan kütüğün adıyla aynıdır (kütük adının klasörlerle ilgili baş tarafı olmaksızın). Bu her zaman böyle olmayabilir. Ara belleklerin adlarını görmek için C-x C-b ile ara bellek listesine bakabilirsiniz. Emacs'te gördüğünüz HER yazı parçası mutlaka bir ara belleğin bir parçasıdır. Bazı ara bellekler hiçbir kütükle ilişkili değillerdir. Örneğin "*Buffer List*" adlı ara belleğin bir kütüğü yoktur. O, C-x C-b ile oluşturduğunuz ara bellek listesini içeren ara bellektir. "*Messages*" adlı ara belleğin de kütüğü yoktur; o da Emacs çalışmaya başladığından bu yana ekranın alt tarafında beliren mesajları içerir. >> C-x b *Messages* <Enter> yazarak mesajların tutulduğu ara belleğe geçin. Ondan sonra da C-x b TUTORIAL <Enter> yazarak tekrar bu derse dönün. Eğer bir kütük metninde değişiklik yaptıktan sonra başka bir kütüğü açarsanız, ilk kütük otomatik olarak kaydedilmez. Onda yapılan değişiklikler Emacs içinde kendi ara belleğinde tutulur. İkinci kütüğün ara belleğinin oluşturulmasının veya değiştirilmesinin ilk kütüğün ara belleği üzerinde hiçbir etkisi yoktur. Bu durum, ilk kütüğün ara belleğini kaydetmenin kolay bir yolunun olması gereğini doğurur. C-x C-s ile kaydedilebilsin diye önce onun ara belleğine C-x C-f ile geçmek uzunca bir işlem olarak kabul edilebilir. Onun için C-x s Bazı ara bellekleri kaydet komutu kullanılır. C-x s, içinde henüz kaydedilmemiş değişiklikler bulunan ara bellekleri kaydetmek isteyip istemediğinizi teker teker sorar. >> Yazıya bir satır ekleyin ve C-x s yazın. TUTORIAL adlı ara belleği kaydetmek isteyip istemediğiniz sorulacaktır. Soruya "yes" (evet) anlamına gelen "y" tuşuna basarak karşılık verin. * KOMUTLARIN GENİŞLETİLMESİ --------------------------- Control ve meta karakterlerine sığamayacak kadar çok sayıda Emacs komutu vardır. Emacs bu soruna karşılık X ("genişlet" anlamındaki eXtend) komutunu kullanır. Genişletilmiş komutların iki türü vardır: C-x Karakter genişlet. Sonrasında tek bir karakter gelir. M-x Komut adıyla genişlet. Sonrasında uzunca bir komut adı gelir. Bunlar çok kullanışlı olsalar da şimdiye kadar öğrendiğiniz komutlardan daha az kullanılırlar. Aslında bunlar arasındaki kütükleri açmak ve kaydetmek için kullanılan C-x C-f ve C-x C-s komutlarını gördünüz bile. Başka bir örnek, Emacs'ten çıkmak için kullanılan C-x C-c komutudur. (Henüz kaydetmediğiniz değişikleri kaybedecek olmaktan korkmayın; C-x C-c komutu, Emacs'ten çıkmadan önce içinde kaydedilmemiş değişiklikler bulunan her ara belleği kaydetmek isteyip istemediğinizi sorar.) Aynı oturuma sonradan geri dönmeye olanak veren Emacs'ten *geçici olarak* çıkma komutu C-z komutudur. [Çevirenin notu: Çoğu modern görsel ortamda C-z komutu Emacs penceresinin küçültülmesine neden olur. Ayrıca, aşağıdaki C-z ile ilgili bir kaç paragrafın görsel ortamlarda geçerli olmadığını da düşünebilirsiniz. ] Bu komutun kullanılabildiği ortamlarda, C-z Emacs'in "durdurulmasına" (suspend) neden olur; kabuk (shell) ortamına dönülür ama Emacs sonlandırılmaz. Çoğu kabuk ortamında Emacs'e devam etmek için `fg' veya `%emacs' kabuk komutları kullanılır. Görevlerin durdurulamadığı sistemlerde C-z, Emacs altında çalışan bir alt kabuk başlatır. Bu durumda Emacs'ten tam anlamıyla çıkılmamıştır. Tekrar Emacs'e dönmek için çoğu durumda alt kabuk içinde `exit' komutu verilir. Sistemden ayrılırken (logout) Emacs'ten çıkmak için kullanılacak komut C-x C-c komutudur. E-posta gibi başka yazılımlar tarafından başlatılan Emacs oturumlarından çıkmak için de bu komut kullanılmalıdır, çünkü o yazılımlar Emacs'in durdurulması durumuna karşı hazırlıklı olmayabilirler. Normal durumda, eğer henüz sistemden ayrılmıyorsanız, Emacs'ten çıkmak yerine onu C-z ile durdurmak daha uygundur. Çok sayıda C-x komutu vardır. Şimdiye kadar öğrendikleriniz: C-x C-f Kütüğü aç C-x C-s Kütüğü kaydet C-x C-b Ara bellek listesi C-x C-c Emacs'ten çık C-x 1 Tek pencere ("diğer pencereleri kapat" anlamında). C-x u Geri al (C-/ daha kullanışlıdır) Komut adıyla genişletilmiş olan komutlar daha da seyrek olarak, ve bazı özel durumlarda kullanılırlar. Bunun bir örneği, yazı içindeki bir dizgiyi verilen başka bir dizgiyle değiştiren replace-string komutudur. M-x yazıldığında Emacs ekranın altında M-x gösterir ve komutun adını yazmanızı bekler (bu durumda "replace-string"). Yalnızca "repl s<TAB>" yazmanız da yeterlidir; komutun adını Emacs tamamlar. (Burada <TAB>, klavyede normalde sol tarafta ve CapsLock tuşunun üst tarafında bulunan Tab tuşu anlamında kullanılmıştır.) Komutun adı <Enter> tuşu ile sonlandırılır. replace-string komutu iki bağımsız değişken ister: değiştirilmesi istenen dizgi ve onun yerini alacak olan dizgi. Her bağımsız değişkeni <Enter> ile sonlandırmanız gerekir. >> İmleci bu satırdan iki aşağıdaki boş satıra götürün. Sonra M-x repl s<Enter>noktadan<Enter>yerden<Enter> yazın. Bu paragrafın nasıl değiştirildiğine dikkat edin: imlecin bulunduğu noktadan sonraki bütün n-o-k-t-a-d-a-n sözcüklerini "yerden" sözcüğü ile değiştirmiş oldunuz. * OTOMATİK KAYIT ---------------- Bir kütükte yaptığınız değişiklikleri daha siz kaydetmeden bilgisayar kilitlenirse, değişiklikler de yok olabilirler. Böyle bir durumda yardımcı olabilmek için Emacs, değiştirdiğiniz her kütüğü bir "otomatik kayıt" kütüğüne kaydeder. Otomatik kayıt kütüklerinin adlarının başında ve sonunda birer # karakteri bulunur. Örneğin kütüğün adı "deneme.txt" ise, ona karşılık gelen otomatik kayıt kütüğünün adı "#deneme.txt#" olur. Asıl kütük normal yollarla kaydedilince Emacs bu otomatik kayıt kütüğünü siler. Bilgisayarda böyle bir kilitlenme olduğu durumda, otomatik olarak kaydedilen değişiklikleri bulabilmek için asıl kütüğü normal olarak açın (otomatik kayıt kütüğünü değil), ve M-x recover file<Enter> yazın ("kütüğü kurtar" anlamında). Onay bekleyen soruya "evet" anlamında yes<Enter> yazarsanız otomatik olarak kaydedilen değişikleri kurtarmış olursunuz. * YANSI (ECHO) BÖLGESİ ---------------------- Komutların adlarını yavaşça yazdığınızı farkettiğinde, Emacs yazdıklarınızı ekranın alt tarafındaki "yansı bölgesi" denen bir yerde göstermeye başlar. Yansı bölgesi ekranın en alt satırıdır. * DURUM (MODE) SATIRI --------------------- Yansı bölgesinin hemen üstündeki satıra "durum satırı" denir. Durum satırında şuna benzer şeyler görebilirsiniz: --:** TUTORIAL (Fundamental)--L670--58%---------------- Bu satır Emacs'in içinde bulunduğu metin düzenleme durumu ve değiştirmekte olduğunuz yazı ile ilgili bilgiler verir. Kütük adının ne olduğunu zaten biliyorsunuz. -NN%-- metin içinde nerede olduğunuzu gösterir; metnin yüzde NN kadarının ekranın üst tarafında olduğu anlamına gelir. Eğer metnin baş tarafı ekranda görünmekteyse, burada --Top-- yazar ("üst"). Eğer kütüğün en alt tarafı ekranda görünmekteyse de --Bot-- yazar ("alt" anlamındaki "bottom"dan). Eğer ekrana bütünüyle sığacak kadar kısa bir metin üzerinde çalışıyorsanız, durum satırında --All-- yazılır ("hepsi"). L ve sonrasında gösterilen sayı, imlecin üzerinde bulunduğu satır sayısını bildirir. Baş taraftaki yıldız karakterleri metinde değişiklik yapılmış olduğunu gösterir. Bir kütük ilk açıldığında veya yeni kaydedildiğinde durum satırında yıldız görünmez; onların yerine tire işaretleri bulunur. Durum satırında parantezler içinde verilen bilgi, hangi metin düzenleme durumunda olduğunuzu gösterir. Emacs'te varsayılan durum, sizin de şu anda kullanmakta olduğunuz Fundamental'dır ("temel" anlamında). Fundamental, bir "birincil durumdur." (major mode.) Emacs'te çok sayıda birincil durum vardır. Bazıları değişik dillerin kaynak kodlarını ve metin türlerini düzenlemek için kullanılırlar; örneğin Lisp durumu, Text durumu, vs. Belirli bir anda yalnızca bir tane birincil durum etkindir. O durumun adı da, durum satırında şu anda "Fundamental"ın bulunduğu yerde gösterilir. Bazı komutlar hangi birincil durumda bulunulduğuna bağlı olarak değişiklikler gösterebilirler. Örneğin, yazılımlama dili kaynak kodlarına açıklama satırları yerleştiren komutlar vardır. Her yazılımlama dilindeki açıklama satırlarını yapısı o dile özgü olduğundan, bu komutlar da açıklama satırlarını o andaki birincil duruma bağlı olarak yerleştirirler. Birincil durumlara da genişletilmiş komutlarla geçilir. Örneğin, M-x fundamental-mode komutu, Fundamental durumuna geçmek için kullanılan komuttur. Eğer şu anda okumakta olduğunuz kütük gibi, insanların okumalarına yönelik metinler düzenleyecekseniz, doğrusu Text durumunu kullanmaktır. >> M-x text mode<Enter> yazın. Merak etmeyin, bunu yaptığınızda şimdiye kadar öğrendiğiniz komutların davranışları fazlaca değişmez. Bir fark olarak M-f ve M-b komutlarının artık tek tırnak işaretlerini (') de sözcüklerin parçası olarak kabul ettiklerini görebilirsiniz. Daha önce Fundamental durumdayken, M-f ve M-b komutları bu karakterleri sözcük ayraçları olarak kabul ediyorlardı. Birincil durumlar bunun gibi küçük farklar getirirler: çoğu komut hemen hemen aynı işi yapsa da, biraz farklı işler. Herhangi bir anda kullanılmakta olan birincil durumla ilgili bilgi almak için C-h m yazabilirsiniz. >> Bu satırı ekranın yukarılarına götürmek için bir kaç tane C-u C-v yazın. >> Text durumunun Fundamental durumdan ne şekilde farklı olduğunu görmek için C-h m yazın. >> Belgeyi ekrandan kaldırmak için C-x 1 yazın. Birincil durumlardan başka ikincil durumlar da vardır. İkincil durumlar birincil durumların yerini almazlar, onlara küçük değişiklikler getirirler. Her ikincil durum, birincil durumdan ve diğer ikincil durumlardan bağımsız olarak tek başına etkinleştirilebilir. Yani istenirse hiç ikincil durum kullanılmayabilir veya bir veya daha çok sayıda ve türde ikincil durum kullanılabilir. Özellikle metin yazarken çok kullanışlı olan bir ikincil durum, Auto Fill durumudur. Bu durum etkin olduğunda; yazıldıkça fazla uzayan satırlar, sözcük aralarından otomatik olarak bölünerek ikinci satıra geçirilirler. Auto Fill durumuna geçmek için M-x auto fill mode<Enter> yazabilirsiniz. Bu durumu etkinsizleştirmek için de yine M-x auto fill mode<Enter> yazılır. Yani durumu etkinleştirmek ve etkinsizleştirmek için aynı komut kullanılır. >> M-x auto fill mode<Enter> yazın. Sonra ikinci bir satıra bölündüğünü görmek için, içinde "asdf " sözcükleri tekrarlanan uzun bir satır yazın. Auto Fill, satırları boşluk karakterlerinden böldüğü için, bu işi yaparken sözcüklerin aralarında boşluk bırakmanız gerekmektedir. Genelde 70 karakter olan satır uzunluğunu C-x f komutu ile değiştirebilirsiniz. Satırın uzunluğu bu komuta sayısal bağımsız değişken olarak bildirilir. >> Bağımsız değişkeni 20 olacak şekilde C-x f yazın. (C-u 20 C-x f). Emacs'in yazdığınız satırları artık 20 karakter uzunlukta olacak şekilde böldüğünü göreceksiniz. C-x f komutunu kullanarak satır uzunluğunu tekrar 70 yapın. Auto Fill, üzerinde değişiklik yapılan paragrafları kendiliğinden düzenlemez. Paragraf satırlarının tekrar düzenlenmeleri için, imleç paragrafın içindeyken M-q (META-q) yazın. >> İmleci bir önceki paragrafa götürün ve M-q yazın. * ARAMA ------- Emacs belirli bir dizgiyi (art arda gelen karakter veya sözcük grubu) yazı içinde ileriye veya geriye doğru arayabilir. Arama işlemi imleci hareket ettiren komutlar arasında sayılır, çünkü imleci aranan dizginin bulunduğu bir sonraki yere götürür. Emacs'in arama komutu "artışlı" (incremental) olması yüzünden çoğu metin düzenleyiciden farklılık gösterir. Bunun anlamı, siz daha aranacak dizgiyi yazmayı bitirmeden önce aramanın başlatılıyor olmasıdır. İleriye doğru arama komutu C-s, geriye doğru arama komutu da C-r'dir. AMA DURUN! Daha denemeye başlamayın. C-s yazdığınızda, yansı bölgesinde "I-search"ün belirdiğini göreceksiniz. Bu, Emacs'in artışlı olarak aranmasını istediğiniz dizgiyi yazmanızı beklemekte olduğunu göstermektedir. Aramayı <Enter> tuşu sonlandırır. >> Aramayı başlatmak için C-s yazın. YAVAŞÇA ve DİKKATLİCE, harfleri teker teker yazarak, ve her harften sonra imlecin nereye gittiğine dikkat ederek 'harf' sözcüğünü yazın. Böylece "harf" sözcüğünü bir kere aramış oldunuz. >> Bir sonraki "harf"i bulmak için bir kere daha C-s yazın. >> Şimdi <Backspace> tuşuna dört kere basarak imlecin hareketini gözleyin. >> Aramayı sonlandırmak için <Enter> tuşuna basın. Ne olduğunu gördünüz mü? Emacs artışlı arama işlemi sırasında, aranacak olan dizginin o ana kadar yazılan kısmına uyan ilk yere gider. Bir sonraki 'harf'e gitmek için bir kere daha C-s yazmak yeterlidir. Eğer dizgi bulunamıyorsa Emacs aramanın başarısız olduğunu bipleyerek bildirir. Aramayı C-g ile iptal edebilirsiniz. NOT: Bazı sistemlerde C-x C-s, ekranın donmasına neden olabilir. Bu, "flow control" adında bir işletim sistemi olanağının devreye girdiğini ve C-s komutunun Emacs'e gönderilmesine izin verilmediği anlamına gelir. Ekran kilidini açmak için C-q yazın. Daha sonra Emacs el kitabının "Spontaneous Entry to Incremental Search" adlı bölümünü okuyabilirsiniz. [Çevirenin notu: Modern ortamlarda böyle bir donma olayı ile karşılaşacağınızı sanmıyorum.] Artışlı bir arama sırasında <Backspace> tuşuna basarsanız, arama dizgisindeki son karakterin silindiğini ve aramanın bir önce bulduğu yere döndüğünü görürsünüz. Örneğin "h"nin ilk bulunduğu yere gitmek için "h" yazdığınızı düşünün. Eğer ondan sonra bir "a" yazarsanız, imleç "ha"nın bir sonraki bulunduğu yere gider. Şimdi <Backspace> tuşuna bastığınızı düşünün. Böylece arama dizgisindeki "a" silinecek ve imleç tekrar bir önce bulduğu "h"ye gidecektir. Artışlı bir arama sırasında control veya meta karakteri yazarsanız arama sonlandırılır (arama sırasında özel anlamları olan C-s ve C-r gibi komutlar hariç). C-s, arama dizgisini imlecin bulunduğu yerden İLERİYE doğru arar. Yazı içinde daha geride bulunan bir şeyi aramak isterseniz, C-r komutunu kullanın. C-s için söylenenler, arama yönünün farklı olması dışında C-r için de aynen geçerlidir. * BİRDEN FAZLA PENCERE ---------------------- Emacs'in güzel yanlarından birisi, ekranda bir seferde birden fazla pencere açabilmenizdir. >> İmleci bu satıra getirin ve C-u 0 C-l yazın (yani CONTROL-L, CONTROL-1 değil). >> Şimdi ekranı iki pencere olarak ayıran C-x 2 komutunu verin. Pencerelerin ikisi de bu yazıyı gösterirler ama imleç üstteki pencerededir. >> Aşağıdaki pencereyi kaydırmak için C-M-v yazın. (Eğer META tuşunuz yoksa ESC C-v yazın.) >> C-x o yazarak imleci diğer (other) pencereye götürün. >> Aşağıdaki pencerede C-v ve M-v komutları ile ilerleyin. Okuduğunuz bu bilgileri yukarıdaki pencereden izlemeye devam edin. >> Tekrar C-x o yaparak imleci tekrar üstteki pencereye getirin. İmlecin üst pencerede daha önceden bulunduğu yere geldiğine dikkat edin. C-x o ile pencereler arasında ilerleyebilirsiniz. İmlecin her pencerede ayrı bir yeri vardır, ama imleç bir seferde tek bir pencerede gösterilir. Bütün normal metin düzenleme komutları imlecin içinde bulunduğu pencere içinde işlerler. Buna "seçili pencere" denir. C-M-v komutu, bir penceredeki yazılanlardan yararlanarak başka bir pencere içinde çalışmak gerektiğinde çok kullanışlıdır. İmleci değişiklik yaptığınız yerde tutabilir ve C-M-v ile diğer penceredeki yazıyı ilerletebilirsiniz. C-M-v, CONTROL-META karakterlerinin örnek bir kullanımıdır. Eğer bir META tuşunuz varsa (çoğu klavyedeki sol Alt tuşu); C-M-v komutunu CONTROL ve META tuşlarını basılı tutarken v yazarak verebilirsiniz. CONTROL veya META tuşlarından hangisine daha önce bastığınız farketmez, çünkü onların görevi, yazdığınız karakterlerin anlamlarını değiştirmektir. Eğer META tuşunuz yoksa ve bu yüzden ESC tuşunu kullanmak zorundaysanız, o zaman bu tuşların hangi sırada basıldıkları önemlidir: bu durumda önce ESC tuşuna basıp bırakmanız, ondan sonra C-v yazmanız gerekir. Bunun nedeni; ESC'in anlam değiştiren bir tuş değil, başlı başına bir karakter olmasıdır. >> Aşağıdaki pencereden kurtulmak için, imleç üstteki penceredeyken C-x 1 yazın. (Eğer komutu aşağıdaki pencerede yazarsanız, bu sefer üstteki pencere kapatılır. Bu komut, "içinde bulunduğum pencere kalsın" anlamına gelir.) İki pencerenin de aynı ara belleği gösteriyor olması gerekmez. Bir kütük açmak için bir pencere içinde C-x C-f komutunu kullanırsanız, diğer pencerenin içeriği değişmez. Her pencere kendi kütüğünü gösterebilir. İki farklı kütüğü göstermek için başka bir yol da şudur: >> C-x 4 C-f yazın, bildiğiniz bir kütüğün adını verin ve <Enter> tuşuna basın. Yeni kütüğün alt pencerede açıldığını göreceksiniz. Bu durumdan imleç de o pencereye gider. >> Tekrar üst pencereye gitmek için C-x o ve alttaki pencereyi kapatmak için C-x 1 yazın. * İÇ İÇE METİN DÜZENLEME DÜZEYLERİ ---------------------------------- Bazen kendinizi "iç içe metin düzenleme düzeyleri" (recursive editing level) denen bir durumlar karşı karşıya bulabilirsiniz. Bu durum, durum satırında köşeli parantezlerle gösterilir. Örneğin (Fundamental) yerine [(Fundamental)] görebilirsiniz. Bu durumdan kurtulmak için "çık" anlamına gelen ESC ESC ESC yazabilirsiniz. Aynı komutu fazla pencereleri kapatmak veya giriş satırından çıkmak için de kullanabilirsiniz. >> Giriş satırına geçmek için M-x yazın; sonra ESC ESC ESC ile çıkın. İç içe metin düzenleme durumundan çıkmak için C-g komutunu kullanamazsınız, çünkü C-g o düzey içindeki komutları veya bağımsız değişkenlerini iptal etmek için kullanılır. * DAHA FAZLA YARDIM ALMAK İÇİN ------------------------------ Bu derste size Emacs'i kullanmaya başlayacak kadar bilgi verdik. Emacs'in olanaklarının tümünü burada anlatmamız olanaksızdı. Emacs'in diğer olanaklarını başka yollardan öğrenebilirsiniz. Emacs'le birlikte komutlarıyla ilgili belgeler de gelir. Bütün bu yardım (help) belgelerine erişim hep "yardım karakteri" olarak da anılan CONTROL-h ile başlar. Yardım belgelerini kullanabilmek için önce C-h karakterini, sonra da ne tür bir yardım istediğinizi bildiren bir karakter yazarsınız. Eğer o karakteri de hatırlamıyorsanız C-h ? yazın, Emacs size ne tür yardım seçenekleri olduğunu göstersin. Eğer C-h yazdıktan sonra vazgeçerseniz, C-g ile iptal edebilirsiniz. (C-h karakterinin bazı ortamlarda değişik başka bir anlamı olabilir. Bütün kullanıcıları etkileyen böyle bir hareket uygun olmadığı için, şikayetinizi sistem yöneticisine bildirmeniz uygun olabilir. Yine de, eğer C-h ekranın alt tarafında yardımla ilgili bir mesaj çıkartmıyorsa, F1 tuşunu veya M-x help <Enter> komutunu da deneyebilirsiniz. [Çevirenin notu: Modern ortamlarda C-h'nin yukarıdaki paragraflarda anlatıldığı gibi "yardım karakteri" anlamında kullanıldığını kabul edebilirsiniz.]) En temel yardım olanağı, C-h c komutudur. Önce C-h, sonra c karakterini ve ardından da bir komut karakteri veya karakter dizisini yazarsanız, Emacs o komutun kısa bir tanımını gösterir. >> C-h c C-p yazın. Mesaj şunun gibi bir şey olacaktır: C-p runs the command previous-line (C-p previous-line komutunu işletir) Bu size "işlevin adını" gösterir. İşlev adları aslında Emacs'i genişletmek ve ayarlarını değiştirmek için kullanılırlar. İşlev adları aynı zamanda o işlevlerin yaptıkları işleri de gösterdikleri için, hatırlatma amaçlı kısa bilgiler almak için de yararlı olabilirler. C-h c komutundan sonra C-x C-s gibi birden fazla tuş içeren komutları da yazabilirsiniz. Bir komut hakkında daha ayrıntılı bilgi almak için C-h c yerine C-h k yazın. >> C-h k C-p yazın. Bu durumda işlevin adına ek olarak belgesini de okuyabilirsiniz. Belgeyi kapatmak için C-x 1 yazabilirsiniz, ama bunu hemen yapmak zorunda değilsinizdir. Yazıya devam ederken belgeyi de açık tutmak ve işiniz bitince kapatmak isteyebilirsiniz. Bazı kullanışlı C-h seçenekleri şunlardır: C-h f İşlevi açıkla. İşlevin adını yazarsınız. >> C-h f previous-line<Enter> yazın. C-p komutunun tanımı olan işlevin belgesi gösterilir. Benzer bir komut da Emacs'in davranışını belirlemede kullanılan değişkenleri açıklayan C-h v komutudur. Emacs sorduğunda değişkenin adını yazmanız gerekir. C-h a İlgili komutu bul. Emacs, adında belirli bir sözcüğün bulunduğu komutların bir listesini verir. Bu tür komutlar META-x ile işletilebilen komutlardır. Bazı komutlar için onları işleten karakter dizisi de verilebilir. >> C-h a file<Enter> yazın. Adlarında "file" sözcüğü bulunan bütün M-x komutlarının bir listesi ayrı bir pencere içinde gösterilir. find-file gibi komut adları yanında, C-x C-f gibi karakter komutlarını da görebilirsiniz. >> Bir kaç kere C-M-v yazarak komut listesini kaydırın. >> Komut listesini kapatmak için C-x 1 yazın. C-h i Info belgelerini göster. Bu komut, çalıştığınız sistemde kurulu bulunan yazılım paketlerinin "info" belgelerini okuyabileceğiniz `*info*' adlı bir ara bellek açar. Orada m emacs <Enter> yazarak Emacs'in info belgesini okuyabilirsiniz. Eğer daha önce Info'yu kullanmadıysanız, ? yazarak Emacs'ten size Info'nun olanaklarını göstermesini isteyebilirsiniz. Bu dersi bir kere tamamladıktan sonra, asıl referans belgesi olarak Emacs Info belgesinden yararlanmanızı öneririz. * DİĞER EMACS OLANAKLARI ------------------------ Emacs hakkında daha fazla bilgi için belgesini ya kitap olarak, ya da Info sayfalarından (C-h i veya F10 h r ile açarak) okuyabilirsiniz. Özellikle beğeneceğiniz iki Emacs olanağı, klavye kullanmayı azaltan "tamamlama" ve kütük işlemlerini kolaylaştıran "dired"dir. Tamamlama, gereksiz tuş tekrarlarını azaltır. Örneğin *Messages* ara belleğine geçmek için *M<Tab> yazdığınızda, geri kalanını Emacs o ana kadar yazdığınız karakterlerden yola çıkarak tamamlar. Tamamlama olanağı, Info belgesinde "Completion" başlığı altında anlatılmaktadır. Dired bir klasördeki (ve seçime bağlı olarak onun alt klasörlerindeki) kütükleri listeler; ve o liste içinde dolaşmaya, kütükleri açmaya, adlarını değiştirmeye, silmeye ve başka işlemlere olanak sağlar. Dired de Info belgesinde "Dired" başlığı altında anlatılmaktadır Info başka çok sayıda Emacs olanağını anlatır. * SONUÇ ------- Unutmayın, Emacs'ten bütünüyle çıkmak için C-x C-c yazın. Sonradan geri dönebilmek için geçici olarak bir kabuk ortamına geçmek için de C-z komutunu kullanın. [Çevirenin notu: Çoğu modern görsel ortamda C-z komutu Emacs penceresinin küçültülmesine neden olur.] Bu ders, bütün yeni başlayanlar tarafından anlaşılabilir olmak amacıyla yazılmıştır. Eğer açık olmadığını düşünüyorsanız, oturup kendinizi suçlamayın; şikayet edin! * KOPYALAMA ----------- Bu ders, ilk Emacs için Stuart Cracraft tarafından yazılmış olan dersin de aralarında bulunduğu çok sayıda ders metninden türemiştir. Okumakta olduğunuz kopyası Ali Çehreli tarafından Türkçeleştirilmiştir. GNU Emacs'in olduğu gibi, dersin bu uyarlamasının da hakları saklıdır ve bazı koşullara bağlı kalınması durumunda kopyalanma izni ile birlikte gelmektedir: Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation Kopyalama hakları ve izin bilgilerinin korunması ve dağıtanın alıcıya burada bildirilen koşullara uygun olarak dağıtma hakkı tanıması koşullarına uyulduğu sürece, bu belgenin edinildiği halinin kelimesi kelimesine kopyalanmasına veya dağıtılmasına izin verilmektedir. Yukarıdaki koşullara uyulduğu sürece ve en son kimin değiştirdiği bilgisini de taşımak koşuluyla, bu belgenin değiştirilmiş kopyalarının veya bir bölümünün dağıtılmasına da izin verilmektedir. Genelde aynı yapıda olsa da Emacs'in kendisinin kopyalanma koşulları daha karmaşıktır. Lütfen GNU Emacs'i COPYING adlı belgeyi okuduktan sonra arkadaşlarınıza verin. Yazılımda engelciliğin ("sahipliğin") önüne serbest yazılımları kullanarak, yazarak ve paylaşarak geçin. [Çevirenin notu: Bu bölümün İngilizce'sini de korudum.] * COPYING --------- This tutorial descends from a long line of Emacs tutorials starting with the one written by Stuart Cracraft for the original Emacs. This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and permission notice are preserved, and that the distributor grants the recipient permission for further redistribution as permitted by this notice. Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last altered them. The conditions for copying Emacs itself are more complex, but in the same spirit. Please read the file COPYING and then do give copies of GNU Emacs to your friends. Help stamp out software obstructionism ("ownership") by using, writing, and sharing free software! ==============================================================================