簡體   English   中英

在正常模式下通過數字鍵作為vim函數的參數

[英]Pass digit keys in normal mode as an argument of vim's function

我想查看輸出消息:

1234

當我在vim的普通模式下鍵入1234<Enter>時。

我試圖在這里寫一些vim腳本

function! PrintNum(n)
    echo n
endfunction

nmap n<Enter> call PrintNum(n)

其中n只是代表regex \\d+的虛擬變量。

如何在map命令中使用某種正則表達式?

請注意,我也不確定是否應該使用nmap

這里是:

function! PrintNum(n)
    echo a:n
endfunction

nnoremap <silent> <Enter> :<C-u>call PrintNum(v:count)<CR>

說明

  • 映射中沒有偽變量; 它按照鍵入的方式執行。 但是,特殊變量v:count獲取可以放在任何命令前的數字。
  • 在這里,我將其作為參數n (內部稱為a:n )傳遞給了函數,但是我也可以直接在函數內部使用v:count
  • 默認情況下, :命令將計數轉換為范圍,因為我們需要一個單獨的:call ,我們通過<Cu>刪除了該范圍。
  • 通過按Enter鍵來結束映射(命令行模式): <CR> <silent>避免您短暫看到映射的鍵。
  • 您應該使用:noremap ; 它使映射不受重新映射和遞歸的影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM