0Pricing
Lua Academy · Ders

Komutlar ve Tuş Eşlemeleri

Kullanıcıya sunulan eylemler ekleyin.

Komutlar ve Tuş Eşlemeleri, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

Kullanıcı Komutlarına Genel Bakış

Kullanıcı komutları, eklentinizin sunduğu :Format veya :Telescope gibi iki noktayla çağrılan komutlardır. Bu komutlar büyük harfle başlamalıdır.

nvim_create_user_command, kullanıcı komutlarını Lua'da tanımlar; bir ad, bir geri çağrı işlevi veya dize ve bir seçenekler tablosu alır. Bu, Vimscript'teki :command komutunun yerini alır.

vim.api.nvim_create_user_command('Hello', function()
  print('Hello from my plugin')
end, {})

Komut Bağımsız Değişkenleri

Bağımsız değişkenleri kabul etmek için nargs değerini '0', '1', '*', '?' veya '+' olarak ayarlayın. Geri çağrı, args, fargs ve bang alanlarını içeren bir opts tablosu alır.

fargs, boşluklara göre zaten bölünmüş bağımsız değişken listesidir ve genellikle ihtiyacınız olan biçim budur.

vim.api.nvim_create_user_command('Greet', function(opts)
  print('Hi ' .. opts.args)
end, { nargs = 1 })

Aralık ve Bang Komutları

Satır aralıklarını kabul etmek için range = true geçirin; geri çağrı daha sonra opts.line1 ve opts.line2 değerlerini okur. :Cmd! kullanımına izin vermek için bang = true ekleyin; bu kullanım opts.bang üzerinden algılanır.

Bu bayraklar, tek bir komutun görsel seçimlerde veya zorunlu sürümlerde farklı davranmasını sağlar.

vim.api.nvim_create_user_command('Sum', function(o)
  print(o.line1 .. ' to ' .. o.line2)
end, { range = true })

Komut Tamamlama

complete seçeneğiyle sekme tamamlaması sağlayın. 'file' veya 'buffer' gibi yerleşik seçenekleri ya da özel bir Lua işlevini kullanın.

Özel bir tamamlama işlevi, kısmi bağımsız değişkeni ve komut satırını alır; ardından aday dizelerinden oluşan bir liste döndürür.

vim.api.nvim_create_user_command('Pick', function(o) print(o.args) end, {
  nargs = 1,
  complete = function() return { 'red', 'green', 'blue' } end,
})

Arabelleğe Özgü Komutlar

Bir komutun kapsamını tek bir arabelleğe sınırlamak için arabellek tanıtıcısıyla birlikte nvim_buf_create_user_command kullanın. Bu yaklaşım, dosya türü eklentilerinde yaygındır.

Örneğin bir Markdown eklentisi, :Preview komutunu yalnızca Markdown arabelleklerinin içinde tanımlayarak genel ad alanını temiz tutabilir.

vim.api.nvim_buf_create_user_command(0, 'Preview', function()
  print('previewing this buffer')
end, {})

vim.keymap.set ile Tanışma

vim.keymap.set, modern tuş eşleme API'sidir. Bir kip, sol taraftaki tuşları, sağ tarafta yürütülecek bir dizeyi veya Lua işlevini ve bir seçenekler tablosunu alır.

Eski nvim_set_keymap'in aksine, sağ taraf için doğrudan bir Lua geri çağrısı kabul eder; <cmd>lua ile sarmalama gerekmez.

vim.keymap.set('n', '<leader>w', function()
  vim.cmd('write')
end, { desc = 'Save file' })

Kipler ve Birden Çok Eşleme

Kip bağımsız değişkeni, 'n' gibi tek bir dize veya aynı anda birden çok kipi eşlemek için { 'n', 'v' } gibi bir tablo olabilir.

Yaygın kipler: n normal, i ekleme, v görsel, x yalnızca görsel, t terminal kipidir. Boş dize '' ise normal, görsel ve operatör bekleme kipleri anlamına gelir.

vim.keymap.set({ 'n', 'v' }, '<leader>y', '"+y', { desc = 'Yank to clipboard' })

Eşleme Seçenekleri

opts tablosu davranışı denetler. silent = true komutun ekrana yazdırılmasını engeller, güvenlik amacıyla noremap varsayılan olarak true değerindedir ve buffer = 0 eşlemenin kapsamını geçerli arabelleğe sınırlar.

which-key ile :map çıktısının okunabilir kalması için her zaman bir desc ekleyin.

vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {
  buffer = 0, silent = true, desc = 'Go to definition',
})

İfade Eşlemeleri

expr = true kullanıldığında, sağ taraftaki işlev beslenecek tuşları döndürür. Bu özellik, tamamlama menüsü görünürken <Tab> tuşunun farklı davranmasını sağlamak gibi akıllı eşlemelerin temelini oluşturur.

Hiçbir şey yapmamak için boş bir dize, eklemek içinse doğrudan tuş dizisini döndürün.

vim.keymap.set('i', '<Tab>', function()
  return vim.fn.pumvisible() == 1 and '<C-n>' or '<Tab>'
end, { expr = true })

Eşlemeleri Silme

Bir eşlemeyi silmek için vim.keymap.del kullanın; aynı kipi ve tuşları, ayrıca eşleme arabelleğe özgüyse bir buffer alanını geçirin.

Bu işlem, temizleme yordamlarında veya bir eklenti bir özelliği kapatıp kullanıcının özgün tuş atamalarını geri yüklemek zorunda olduğunda kullanışlıdır.

vim.keymap.del('n', '<leader>w')
vim.keymap.del('n', 'gd', { buffer = 0 })

Komutları ve Tuş Eşlemelerini Birlikte Kullanma

Temiz bir yaklaşım, mantığı bir kez tanımlamak, bunu kullanıcı komutu olarak sunmak ve bu komutu çağıran bir tuşa bağlamaktır. Böylece tek bir doğruluk kaynağı korunur.

<cmd>Hello<cr> ile eşleme yapmak, görsel kipten çıkılmasını önler ve :Hello<cr> kullanımına göre daha öngörülebilirdir.

vim.api.nvim_create_user_command('Toggle', function() end, {})
vim.keymap.set('n', '<leader>t', '<cmd>Toggle<cr>', { desc = 'Toggle' })

Hızlı Kontrol

Komutlar ve tuş eşlemeleri hakkındaki kavrayışınızı sınayın.

Özet: Komutlar ve Tuş Eşlemeleri

Artık nvim_create_user_command ile komutlar oluşturabilir, bunları nargs, range, bang ve complete aracılığıyla denetleyebilir ve kapsamlarını arabellek bazında sınırlayabilirsiniz.

Eşlemeler için vim.keymap.set, Lua geri çağrılarını, birden çok kipi ve desc, silent, buffer ve expr gibi seçenekleri kabul eder; temizleme işlemleri için vim.keymap.del kullanılabilir.

Sıkça Sorulan Sorular

“Komutlar ve Tuş Eşlemeleri” dersi ücretsiz mi?

Evet — “Komutlar ve Tuş Eşlemeleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“Komutlar ve Tuş Eşlemeleri” dersinde ne öğreneceğim?

Kullanıcıya sunulan eylemler ekleyin. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Komutlar ve Tuş Eşlemeleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Neovim Lua API'si
  2. Komutlar ve Tuş Eşlemeleri
  3. Tamponlar ve Pencereler
  4. Eklenti Paketleme
← Lua Academy Sayfasına Dön