ASCII文字で文字を操作する


8

私が持っているとしましょう

let l:letter = 'A'

l:letterアスキーコードを受け取り、それを変換する関数はあり'B'ますか?私のようなものを意味します

let l:next_letter = l:letter + 1

<Ctrl-A>with set nf=alphaがあることは知っていますが、ドキュメント内の文字の上にカーソルを置く必要があるため、ドキュメントを変更せずに変数を使用してそれを実行できるかどうか疑問に思いました。

ここまでが私が試したものですが、先ほど述べたように、ドキュメントとカーソル位置が変更されます。

fu! s:get_next_char(letter)
    set nf=octal,hex,alpha
    call setline(line('$') + 1, a:letter)
    exe ':normal! G^'."\<C-A>"
    set nf=octal,hex

    let l:next_letter = getline('$')
    normal! Gdd
    return l:next_letter
endfu

1
:help string-functions
romainl 2015

2
@romainlのヒントに感謝しますが、次回は数日間vimscriptでプログラミングしていて、私が知っている限りでstring-functionsは、すべての言語のグローバル標準のマニュアルページではないことを真剣に考慮して ください。
Jcao02

2
@ Jcao02に同意します。Vimのヘルプページ全体に関する事前の知識は、このサイトの要件ではありません。そして、私は:help string-functions少し曖昧に分類します。また、pythonやperlなどの一部のスクリプト言語は、ASCII /文字に変換するために使用chr()およびord()機能します。したがって、これらの用語で検索しても、nr2charおよびchar2nr関数は表示されません。代わりに@romainlのコメントを回答として投稿するべきだと思います。
akshay、2015

2
私はromainlに同意する必要があります。vimヘルプページをナビゲートする方法を知ることは非常に重要です。私の最初のシェルクラスは私に教えましたman man:help :help同様に重要です。しかし、vimのドキュメントは非常に膨大であり、最初の数年間を把握するのは困難です。したがって、:h function^Dエントリポイントを与えるようなトリック。ここでは:h functions(/ :h string-functions)になります。そうすれば、何が何をしているかを簡単に理解できます。他の言語に慣れていても。私たちはいつでも情報を提供できます(ほとんどの場合それを行います)が、釣り方を教えることはより重要です
Luc Hermitte

2
@LucHermitte私は投稿するだけで:help string-functionsは釣り方を示していないことを主張します。それは、誰かに餌を与え、魚を釣るように全く教えていないようなものです。彼らが機能を検索する方法を投稿することは、彼らに魚を教えることです。
akshay 2015

回答:



2

問題は(私の強調):

アスキーコードを受け取り、それを「B」に変換する関数はありl:letterますか?

関数が必要なので、最初に試すことは、以下:help function<C-d>を含むすべてのドキュメンテーションタグをリストすることですfunction

:function                    list-functions               folding-functions
function()                   time-functions               history-functions
functions                    mark-functions               mapping-functions
function-key                 text-functions               various-functions
function_key                 compl-function               numbered-function
function-list                local-function               autoload-functions
:function-verbose            spell-functions              quickfix-functions
function-argument            float-functions              complete-functions
nb-functions                 style-functions              anonymous-function
function-search-undo         ft-ada-functions             Dictionary-function
gui-functions                string-functions             completion-functions
arg-functions                server-functions             window-size-functions
var-functions                cursor-functions             interactive-functions
function-range-example       window-functions             command-line-functions
expr-function                buffer-functions             highlighting-functions
new-functions-5.2            system-functions             curly-braces-function-names
date-functions               syntax-functions             python-Function
dict-functions               xterm-function-keys          :endfunction
file-functions               vt100-function-keys          :delfunction
user-functions               bitwise-function

最も明白な候補はですfunction-list。試してみましょう。

There are many functions.  We will mention them here, grouped by what they are
used for.  You can find an alphabetical list here: |functions|.  Use CTRL-] on
the function name to jump to detailed help on it.

String manipulation:                    *string-functions*
    nr2char()       get a character by its ASCII value
    char2nr()       get ASCII value of a character
    [...]

ここではパターンに気づいたかもしれません:関数はテーマごとにグループ化されています。つまり、リストをフィルタリングする関数が必要な場合は、直接にアクセスできます:help list-functions

Vimのヘルプページは非常に便利です。多くの:help <keyword><C-d>場合、長い道のりを得るでしょう;-)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.