İPUCU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

Seçenekler

[FULL] VIM editör ●Stajyer Asistan Kulübü

03-06-2018 03:58
#1
M R X - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Nereden:
<CMD>
Mesajlar:
908
Teşekkür (Etti):
137
Teşekkür (Aldı):
247
Konular:
192
Ticaret:
(0) %


.




VIM nedir?
VIM komutları (HEPSİ)








VİM açık kaynak metin düzenleme programıdır. UNIX sistemlerinde dağıtılan VI metin düzenleyicisinin geliştirilmiş halidir. 991 yılında Bilgisayar programcısı

" Bram Moolenaar "



tarafından yayınlandı. Vim açık kaynak bir yazılım olduğundan dolayı; Linux kullanıcıları tarafından çok beğenilmiştir
Sadece Linux ile yazılım geliştiren kullanıcılara aşkın değil hertürlü metin düzenlemesi içinde kullanılır.





VİM metin düzenleyicisi 3 mod 'ta çalışmaktadır;

- Komut modu
- Görsel modu
- Düzenleme modu





VİM' in dosya uzantısı ;
Kod:
.vimrc



VİM 'de yazma moduna geçiş için;
Kod:
  
        i 	                bulunulan yerde yazma moduna geçer (i=insert)
	I			satır başına gidip yazma moduna geçer (I=insert)
	a			bir sonraki yerden bir karakter sağa kayıp yazma moduna geçer (a=append)
	A			satır sonuna gidip yazma moduna geçer (A=append)
	o			aşağıya yeni bir satır ekleyip yazma moduna geçer
	O			yukarıya bir satır ekleyip yazma moduna geçer
	<ESC>			yazma modundan çıkar




Dosya içi komutlar

Kod:
	h			sola bir karakter
	l			sağa bir karakter
	j			aşağı satıra
	k			yukarı satıra
	3j			3 satır aşağıya
	H			imleç sayfa başına (high)
	3H			imleç sayfa başından 3 satır aşağıya
	L			imleç sayfa sonuna (low)
	3L			imleç sayfa sonundan 3 satır yukarıya
	M			imleç sayfa ortasına
	gg			dosya başına
	GG			dosya sonuna
	3G			3. satıra
	:3			3. satıra
	<CTRL>e			dosyayı yukarı doğru kaydır (imlecin yeri değişmez)
	<CTRL>y			dosyayı aşağıya doğru kaydır (imlecin yeri değişmez)
	zt			bulunulan satırı, sayfanın başına getir (imlecin yeri değişmez) (t=top)
	zb			bulunulan satırı, sayfanın sonuna getir (imlecin yeri değişmez) (b=bottom)
	zz			bulunulan satırı, sayfanın ortasına getir (imlecin yeri değişmez)
	%			parantezin eşini bulur ve imleci oraya götürür
	''			imlecin bir önceki konumuna geri döner
	'.			en son değişikliğin yapıldığı satıra geri döner
	f<harf>			satırda, sağa doğru harfin bulunduğu ilk konuma gider
	F<harf>			satırda, sola doğru harfin bulunduğu ilk konuma gider
	ma			imlecin bulunduğu yeri a noktası olarak işaretle (a..z, A..Z, 0..9) (m=mark)
	'a			a noktasının bulunduğu satıra git
	`a			a noktasına git
	:marks			işaretli noktaların listesini gösterir




Silme-Kopyalama-Yapıştırma komutları;

Kod:
x veya dl		karakteri sil (d=delete) (l=letter)
	X			önceki karakteri sil
	dw			bir sonraki kelimeye kadar sil (w=word)
	de			kelimenin sonuna kadar sil (e=end)
	db			kelimenin başına kadar sil (b=beginning)
	dd			satırı sil
	d'a			a noktasının bulunduğu satıra kadar sil
	d`a			a noktasına kadar sil
	d^			bulunulan yerden, satır başına kadar sil (^=satır başı)
	d$			bulunulan yerden, satır sonuna kadar sil ($=satır sonu)
	D			bulunulan yerden, satır sonuna kadar sil ($=satır sonu)
	3dd			3 satır sil
	yl			harfi kopyala (y=yank) (l=letter)
	yw			bir sonraki kelimeye kadar kopyala (w=word)
	ye			kelimenin sonuna kadar kopyala (e=end)
	yb			kelimenin başına kadar kopyala (b=beginning)
	yy			satırı kopyala
	y'a			a noktasının bulunduğu satıra kadar kopyala
	y`a			a noktasına kadar kopyala
	y^			bulunulan yerden, satır başına kadar kopyala (^=satır sonu)
	y$			bulunulan yerden, satır sonuna kadar kopyala ($=satır sonu)
	p			bir sonraki pozisyona yapıştır (p=paste)
	P			bir önceki pozisyona yapıştır (P=paste)
	3p			3 kere yapıştır
	set paste		formatlanmış bir metni vim'e yapıştırmadan önce otomatik girintileme yapmasın diye
	set nopaste		yapıştırma işlemi bittikten sonra




Dosya veya Shell 'den veri alma;
Kod:
:r dosya		dosyanın içeriğini imleçten sonraki kısma yazar
	:r !komut		komutun çıktısını imleçten sonraki kısma yazar




Depo kullanarak Copy-Paste
Kod:
	"add			silinen satırı 'a' kodlu depoya koy
	"ayy			kopyalanan satırı 'a' kodlu depoya koy
	"ap			'a' kodlu depodaki veriyi yapıştır
	:reg a			'a' kodlu depoda ne olduğunu gösterir (reg=register)
	:reg abcd		a, b c, d depolarında ne olduğunu gösterir
	:reg			bütün depoları gösterir

	a..z, A..Z, 0..9	depo kodu olarak bu karakterlerden biri kullanılabilir
				bütün kopyalama ve yapıştırma komutları, depolu biçimde de kullanılabilir




Görsel mod 'ta Copy-Paste
Kod:
	v			görsel moda geç (v=visual)
	<CTRL>v			görsel modda blok seçme
	d			seçimi sil (d=delete)
	c			seçimi sil ve yazma moduna geç (c=cut)
	y			seçimi kopyala (y=yank)
	p			seçimi yapıştır (p=paste)




Kesme-Degiştirme
Kod:
	r<harf>			imlecin bulunduğu harfi sil ve yerine, <harfi> yaz (r=replace)
	R			yazma moduna geç ve eski metnin üstüne yaz (R=replace)
	cw			bir sonraki kelimeye kadar olan kısmı sil ve yerine, yazılanları yaz (c=cut) (w=word)
	ce			kelimenin sonuna kadar olan kısmı sil ve yerine, yazılanları yaz (e=end)
	cb			kelimenin başına kadar olan kısmı sil ve yerine, yazılanları yaz (b=beginning)
	c'a			a noktasının bulunduğu satıra kadar sil ve yerine, yazılanları yaz
	c`a			a noktasına kadar sil ve yerine, yazılanları yaz
	c^			satırın başına kadar olan kısmı sil ve yerine, yazılanları yaz (^=satır başı)
	c$			satırın sonuna kadar olan kısmı sil ve yerine, yazılanları yaz ($=satır sonu)
	C			satırın sonuna kadar olan kısmı sil ve yerine, yazılanları yaz ($=satır sonu)
	3cw			3 kelimeyi sil ve yerine, yazılanları yaz




Arama ve Otomatik değiştirme
Kod:
	*			imlecin üzerinde bulunduğu kelimenin tekrarını sonra doğru arar
	#			imlecin üzerinde bulunduğu kelimenin tekrarını başa doğru arar
	/sablon			sablonu sona doğru ara
	?sablon			sablonu başa doğru ara
	n			bir sonrakini bul
	N			bir öncekini bul
	:s/sablon/yeni		sablona uyan ilk metni, yenisi ile değiştir
	:s/sablon/yeni/g	satırda, sablona uyan metinleri, yeni ile değiştir (g=global)
	:%s/sablon/yeni/g	dosyada, sablona uyan metinleri, yeni ile değiştir 
	:%s/sablon/yeni/gc	dosyada, sablona uyan metinleri, yeni ile değiştir ama önce onay al (c=confirm)
	şablonda ^		satır başı
	şablonda $		satır sonu
	şablonda [abc]		bu karakterlerden biri...
	şablonda [^abc]		bu karakterlerden hiçbiri...
	şablonda .		herhangi bir karakter
	şablonda *		herhangi bir karakter dizisi
	q/ veya /<CTRL>f	ileriye doğru yapılmış aramaların listesini verir
	q? veya ?<CTRL>f	geriye doğru yapılmış aramaların listesini verir
	:set is			sablon yazılırken aramaya başla (is=instant search)
	:set hls		sablona uyanları belirginleştir (hls=highlighted search)
	:set nohls		hls modunu kapat (nohls=no highlighted search)
	:set ic			büyük-küçük harf ayırt etmeden arar (ic=ignore case)




Undo-Redo
Kod:
	:undolist
	u			yapılan işlemi geri al (u=undo)
	U			satırı, imlecin satıra geldiği andaki şekle geri döndür (U=undo)
	:u[ndo]
	:earlier

	<CTRL>r			undo işlemini geri al (r=redo)
	:red[o]
	:later
	3u			son 3 değişikliği geri al




Biçimlendirme
Kod:
	:set expandtab		tab karakterlerini 
	:retab			boşluk karakterine çevirir

	:set noexpandtab	uygun sayıda boşluk karakterini
	:retab			tab karakterine çevirir

	>>			satırı bir kaydırma aralığı kadar sağa kaydırır
	<<			satırı, bir kaydırma aralığı kadar sola kaydırır
	> <sağ ok tuşu>		bulunulan satırı kaydırır
	> <yukarı ok tuşu>	bulunulan satır ve bir üst satırı kaydırır
	> <aşağı ok tuşu>	bulunulan satır ve bir alt satırı kaydırır
	3>>			3 satırı birden bir kaydırma aralığı kadar kaydırır
	3> <yukarı ok tuşu>	bulunulan satır dahil yukarı doğru 3 satırı sağa kaydırır
	:set sw=4		kaydırma aralığının kaç karakter uzunluğunda olacağını belirtir (sw=shift width)
	:set tabstop=8		tab ile kaç karakter gidileceğini belirler
	:set nu			satır numaralarını gösterir (nu=number)
	:set nonu		satır numaralarını gizler (nonu=no number)
	~			imlecin üstünde bulunduğu karakteri büyükse küçük, küçükse büyük yapar 
	:TOhtml			metni üretecek HTML kodunu üretir, renklendirmeleri dikkate alır






Yazma-İşlem kolaylaştırıcılar
Kod:
	<CTRL>l			*******
	:set list/nolist	görünmeyen karakterleri göstermek veya göstermemek için...
	ga veya :as		imlecin altındaki karakterin, karakter kodunu gösterir
	<CTRL>n			yazma modundayken kelimeyi, var olan kelimelere bakarak tamamlar (n=next)
	<CTRL>p			yazma modundayken kelimeyi, var olan kelimelere bakarak tamamlar (p=previous)
	.			son yapılan işlemi tekrarlar
	q: veya :<CTRL>f	kullanılmış komutların listesini verir
	q/ veya /<CTRL>f	ileriye doğru yapılmış aramaların listesini verir
	q? veya ?<CTRL>f	geriye doğru yapılmış aramaların listesini verir
	<CTRL>c <CTRL>c		komut/arama listesinden çıkmak için
	<CTRL>x			imleçin üstünde bulunduğu sayıyı bir azaltır
	<CTRL>a			imleçin üstünde bulunduğu sayıyı bir çoğaltır
				screen altındayken <CTRL>aa
	:set foldmethod=indent	indent'lere göre blokları belirler (Python kodu için...)
	zo			bloğu açar
	zO			bütün blokları açar
	zc			bloğu kapatır
	zC			bütün blokları kapatır
	za			açıksa, kapalı; kapalıysa, açık hale getirir
	zj			sonraki bloğa geçer
	zk			önceki bloğa geçer
	<CTRL> x o		omnifunc tanımlanmış dosya biçimleri için kod tamamlar




Macro
Kod:
	q			ilk seferde makro bloğuna gider
				bundan sonra girilen ilk harf makronun adı olur
				bundan sonra yapılan bütün işlemler makro bloğuna kaydedilir
				tekrar q'ye basıldığında makro kaydı sona erer
	@<harf>			makroyu çalıştırır
	"<harf>p		makro içeriğini metin olarak sayfaya yazar
				~/.viminfo dosyasından da makro kayıtları görünebilir




Dosya İşlemleri
Kod:
 :new			yeni dosya oluştur
	:S			dosya tarayıcısını aç. Seçimler için <ENTER> kullan
	:e dosya		var olan bir dosyayı aç (e=edit)
	:w			yapılan değişiklikleri kaydet (w=write)
	:w dosya		yapılan değişiklikleri 'dosya' adı ile kaydet (w=write)
	:wq			yapılan değişiklikleri kaydedip çık (w=write) (q=quit)
	:q!			yapılan değişiklikleri kaydetmeden çık (q=quit)
	:Nread scp://kullanici@12.12.12.12/klasor/dosya		dosyaya scp ile uzaktaki makineden açar (Nread=network read)
	:Nwrite scp://kullanici@12.12.12.12/klasor/dosya	dosyayı scp ile uzaktaki makineye kaydeder (Nwrite=network write)




Birkaç dosya ile aynı anda çalışma.
Kod:
 dosyayı aç (e=edit)
	:bn			bir sonraki tampon belleğe geç
	:bp			bir önceki tampon belleğe geç
	:wn			değişiklikleri kaydet ve bir sonraki tampon belleğe geç
	:wp			değişiklikleri kaydet ve bir önceki tampon belleğe geç
	:bn!			değişiklikleri kaydetmeden bir sonraki tampon belleğe geç
	:b3			3 numaralı tampon belleğe geç
	:bd			tampon bellegi siler
	:bd3			3 numaralı tampon belleği siler
	:set hidden		bir tampon bellekten diğerine, değişiklikleri kaydetmeden geçmeye izin verir




Tablar ile çalışma
Kod:
 :tabedit		yeni tab oluşturur
	:tabnew dosya_adi	yeni tab oluşturur ve dosyayı bu tab'da açar
	:tabc			tab'ı kapatır
	:tabmove		tab'ı taşı
	gt			sonraki tab'a git
	gT			önceki tab'a git






VİM Sık kullanılan Komutları
Kod:
:syntax on
dosya tipine göre renklendirme/biçimlendirme yapar

Kod:
:set is
arama şablonu yazılırken bulmaya başlar (is= instant search)

Kod:
:set ic
büyük-küçük harf ayırt etmeden arar (ic=ignore case)

Kod:
:set hls
metin içinde arama şablonuna uyan bölümleri belirginleştirir (hls=highlighted search)

Kod:
:set hidden
bir tampon bellekten diğerine, değişiklikleri kaydetmeden geçmeye izin verir

Kod:
:set encoding=utf-8
default encoding'i utf-8 yapar

Kod:
:!chardet %
encode durumunu sorgular

Kod:
:set bg=dark
arkaplani koyulaştırır. Özellikle SSH ile bağlanılan makineler için iyi sonuç veriyor.

Kod:
:set tabstop=8
tab uzunluğu

Kod:
:set shiftwidth=4
Görsel modda < ve > karakterlerine basıldığında bloğun ne kadar kaydırılacağı

Kod:
:set softtabstop=4
boşluklardan oluşan feyk tabın uzunluğu

Kod:
:set expandtab
tab tuşuna basıldığında boşluk karakterlerinden oluşan feyk tab kullanılmasını sağlar

Kod:
:set autoindent
alt satıra geçirdiğinde, üst satırın girintisine uyulur

Kod:
:set list
unprintable karakterleri gösterir

Kod:
:set listchars==tab:»·,trail:·
tab karakteri için '»', tab boşlukları için '.', satır sonundaki fazlalık boşluklar için '.' gösterir

Kod:
:autocmd InsertEnter * set cursorline cursorcolumn
Yazma moduna geçince imlecin bulunduğu satırın altı çizilir Bulunulan kolon renklendirilir

Kod:
:autocmd InsertLeave * set nocursorline
Komut moduna geçince cursorline ve cursorcolumn iptal edilir

Kod:
:highlight cursorline cterm=none ctermfg=7 ctermbg=4
cursorline özelliği açıksa, bulunulan satırda mavi üzerine sarı yazı kullanılır

Kod:
:highlight cursorcolumn cterm=none ctermfg=7 ctermbg=
cursorcolumn özelliği açıksa, bulunulan kolonda mavi üzerine sarı yazı kullanılır

Kod:
:set foldmethod=indent
Girintilere göre bloklama yapar. Özellikle Python kodlarken kullanmakta fayda var.

Kod:
:map <F8> :!python % <enter>
F8 tuşunu, "!python %" komutunu çalıştıracak şekilde ayarlar











Saygılarımla; M R X
Kullanıcı İmzası

Webmaster Front-end Developer
Konu M R X tarafından (03-06-2018 04:00 Saat 04:00 ) değiştirilmiştir.
CH4M3, AnTiFriZz, CyberXhackk Teşekkür etti.

03-06-2018 04:00
#2
AROCKS - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
03/2018
Mesajlar:
769
Teşekkür (Etti):
21
Teşekkür (Aldı):
386
Konular:
40
Ticaret:
(0) %
İlk defa duydum,açıklayıcı olmuş elinize sağlık.
03-06-2018 04:56
#3
CH4M3 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
08/2017
Nereden:
php island
Mesajlar:
1.717
Teşekkür (Etti):
517
Teşekkür (Aldı):
511
Konular:
90
Ticaret:
(0) %
Ellerine sağlık, detaylı bir anlatım olmuş
03-06-2018 04:57
#4
M R X - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Nereden:
<CMD>
Mesajlar:
908
Teşekkür (Etti):
137
Teşekkür (Aldı):
247
Konular:
192
Ticaret:
(0) %
Alıntı:
AROCKS´isimli üyeden Alıntı Mesajı göster
İlk defa duydum,açıklayıcı olmuş elinize sağlık.
Teşekkürler!


Alıntı:
CH4M3´isimli üyeden Alıntı Mesajı göster
Ellerine sağlık, detaylı bir anlatım olmuş
Saolun binbaşım
Kullanıcı İmzası

Webmaster Front-end Developer
03-06-2018 05:52
#5
benbozo - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Mesajlar:
374
Teşekkür (Etti):
59
Teşekkür (Aldı):
100
Konular:
35
Ticaret:
(0) %
Detaylı anlatım için teşekkürler. Gayet yararlı bir bilgi, eline emeğine sağlık.
Kullanıcı İmzası
Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

Mustafa Kemal Atatürk
20 Ekim 1927
03-06-2018 06:15
#6
Üyelik tarihi:
03/2018
Nereden:
TürkHackTeam
Mesajlar:
530
Teşekkür (Etti):
25
Teşekkür (Aldı):
75
Konular:
15
Ticaret:
(0) %
Detaylı anlatım güzel olmuş
Kullanıcı İmzası
Reklam yapmakta değil, site hacklemekte iyiyiz!

[Turk Hack Team]
04-06-2018 23:49
#7
AnTiFriZz - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
02/2016
Nereden:
ON/C
Yaş:
24
Mesajlar:
1.696
Teşekkür (Etti):
232
Teşekkür (Aldı):
667
Konular:
343
Ticaret:
(0) %
eline sağlik babacan.
05-06-2018 00:11
#8
Üyelik tarihi:
03/2016
Nereden:
pardus@root
Mesajlar:
2.992
Teşekkür (Etti):
772
Teşekkür (Aldı):
702
Konular:
239
Ticaret:
(0) %
Ellerine sağlık süper (:
Kullanıcı İmzası

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı