くふんを狙え(vimグループ) このページをアンテナに追加 RSSフィード

くふんを狙え

 | 

2008-11-05

「"\<C-h>" と "\<BS>" と "\b" と /\b と」のまとめ

14:47 | 「"\" と "\" と "\b" と /\b と」のまとめ - くふんを狙え(vimグループ) を含むブックマーク はてなブックマーク - 「"\" と "\" と "\b" と /\b と」のまとめ - くふんを狙え(vimグループ) 「"\" と "\" と "\b" と /\b と」のまとめ - くふんを狙え(vimグループ) のブックマークコメント

"¥&lt;C-h&gt;" と "¥&lt;BS&gt;" と "¥b" と /¥b と - くふんを狙え(vimグループ) - vimグループのまとめ。

kana1:
@krogue you confuse with two meanings of <BS>. one is a control character (0x08), the other is an escape sequence to represent the BS key.
http://twitter.com/kana1/status/990851025

krogue:
キーを表す <BS> が \b の記述に当然のようにある。 BS(0x08) という文字コードと <BS> というキー入力が書き分けられていないせいでひどく混乱した。 
http://twitter.com/krogue/status/990946749

このあたりが結論。問題は「ヘルプの記述」(と私の理解の低さ)だと思う。現状ヘルプに「<BS>」と書かれているものには、「文字コードBS」と「キー入力のBS」の二つの意味がある。

"\b"と/\bで書かれている<BS>は両方とも「文字コードBS」を指していて「キー入力のBS」を指していない。これによって私は混乱した。知っていればなんてことはないことなんだけど、知らなければ混乱することもある。

ここまで整理したうえで見てみると「"\<C-h>"と"\<BS>"じゃ意味が全然違う!」という発言の意味が分かってくる。<C-h>では「文字コードBS」が入力されるのに対して、<BS>では「文字コードBS」は入力されない。確かに「全然違う」というわけだ。

書きわけるいい方法ってないのかな。

"\<C-h>" と "\<BS>" と "\b" と /\b と

14:04 | "\" と "\" と "\b" と /\b と - くふんを狙え(vimグループ) を含むブックマーク はてなブックマーク - "\" と "\" と "\b" と /\b と - くふんを狙え(vimグループ) "\" と "\" と "\b" と /\b と - くふんを狙え(vimグループ) のブックマークコメント

途中おそろしく色々と( krogue が)間違っているが気にせず貼る。あとでまとめる……かもしれない。

追記:Vimスクリプトのコードを追記

krogue:
"\<C-h>" と "\<BS>" じゃ意味が全然違う! 
http://twitter.com/krogue/status/990624439

krogue:
"\b"=="\<C-h>"で"\b"=="\<BS>"なのはいいとして"\b"=~"\<C-h">で"\b"!~"\<BS>"ってどういうことよ
http://twitter.com/krogue/status/990702601

krogue:
"\b" と "\<C-h>" は同じように使っていいが "\<BS>" は同じように使うべきじゃない
http://twitter.com/krogue/status/990704287

        kana1:
        @krogue <C-h> means the H key with Ctrl pressed. <BS> means the Backspace key. They are completely different.
        http://twitter.com/kana1/status/990726166

        kana1:
        @krogue though <C-h> often works the same as <BS>, it is just a legacy convention.
        http://twitter.com/kana1/status/990734811

krogue:
@kana1 "\b" が ^H なのはどう解釈すればいいんでしょう?
http://twitter.com/krogue/status/990819590

krogue:
/\b が "\<BS>" にマッチしないって狂ってる。<BS> にマッチしますって嘘ばっかじゃねえか
http://twitter.com/krogue/status/990832230

krogue:
"\<C-h>" にはきっちりマッチする /\b
http://twitter.com/krogue/status/990833074

        kana1:
        @krogue in terminal, Ctrl-[A-Z] produce ASCII code 1-26. so that "\<C-h>" ==# "\<Char-8>". "\b" is just an alias of "\<Char-8>".
        http://twitter.com/kana1/status/990843089

        kana1:
        @krogue and Vim will :echo such control codes as ^H.
        http://twitter.com/kana1/status/990844311

        kana1:
        @krogue you confuse with two meanings of <BS>. one is a control character (0x08), the other is an escape sequence to represent the BS key.
        http://twitter.com/kana1/status/990851025

        kana1:
        @krogue you also mistake that you forget to escape backslashes for /\b - http://twitter.com/krogue/status/990702601
        http://twitter.com/kana1/status/990862325

krogue:
@kana1 :ec "\<BS>" =~# '\b' は 0
http://twitter.com/krogue/status/990872418

krogue:
@kana1 typo です<http://twitter.com/krogue/s...
http://twitter.com/krogue/status/990876619

krogue:
文字列中では \b を使う。絶対。 <expr> で返すのであっても。 
http://twitter.com/krogue/status/990880346

        kana1:
        @krogue check the result of :echo "\<BS>". you'll realize misunderstanding.
        http://twitter.com/kana1/status/990881008

krogue:
@kana1 :ec "\<BS>" は <80>kb で <BS> を表すシーケンスですよね
http://twitter.com/krogue/status/990885647

krogue:
@kana1 :h expr-quote を参照すると "" 中での \b と \<BS> の違いが書かれていないように思います。
http://twitter.com/krogue/status/990910352

krogue:
@kana1 :echo "\b" の出力がどうして<80>kbにならないのか。ASCIIでいうところのBS(0x08)を出力するのは自然だし悪くないが、それなら"\<xxx>" の記述はどうなんだと。
http://twitter.com/krogue/status/990922842

krogue:
キーを表す <BS> が \b の記述に当然のようにある。 BS(0x08) という文字コードと <BS> というキー入力が書き分けられていないせいでひどく混乱した。 
http://twitter.com/krogue/status/990946749

krogue:
vim bs 問題まとめ:キーシーケンス<BS>と文字コードBS(0x08)とがヘルプで区別されていない。/\b ( :h /\b ) も "\b" ( :h expr-quote ) も記述が不適切。
http://twitter.com/krogue/status/990961369

        kana1:
        @krogue '\<xxx> Special KEY named "xxx".'
        http://twitter.com/kana1/status/990962528

        kana1:
        @krogue the document for other notations such as \b describes what corresponding CHARACTERS are.
        http://twitter.com/kana1/status/990980090

krogue:
:ec "\b"=="\<BS>" が今試したら真にならない。なぜだ。こいつのせいでひどく混乱したのに
http://twitter.com/krogue/status/990990128

krogue:
@kana1 <BS> はキャラクタ?
http://twitter.com/krogue/status/991002672

krogue:
@kana1 <BS> はキーじゃないの?
http://twitter.com/krogue/status/991004306

krogue:
:h <> を参照中
http://twitter.com/krogue/status/991007527

krogue:
:h <> をざっと見た感じだと <BS> は「<BS>という特殊キーを押下すること」のように思う。 "\b" に対応付けるなら <BS> ではなく <C-h> ではないのか。
http://twitter.com/krogue/status/991021722

krogue:
BS(0x08) は ^H 。つまり control+H なわけで、文字コードからの意味から考えるなら <BS> よりは <C-h> の方がずっと自然に思える。 :ec "\b" == "\<C-h>" は真なわけだし。 
http://twitter.com/krogue/status/991028840

" まずヘルプから
:help expr-quote
" \b バックスペース <BS>
:help /\b
" <BS> にマッチします

:echo string("\b")
" '^H'
:echo string("\<Char-0x08>")
" '^H'
:echo string("\<C-h>")
" '^H'
:echo string("\<BS>")
" '<80>kb'

" "\b" との比較
:echo "\b" ==# "\<Char-0x08>"
" 1
:echo "\b" ==# "\<C-h>"
" 1
:echo "\b" ==# "\<BS>"
" 0

" "\b" とのマッチ
:echo "\b" =~# "\<Char-0x08>"
" 1
:echo "\b" =~# "\<C-h>"
" 1
:echo "\b" =~# "\<BS>"
" 0

" /\b の不思議
:echo "\<Char-0x08>" =~ '\b'
" 1
:echo "\<C-h>" =~ '\b'
" 1
:echo "\<BS>" =~ '\b'
" 0

tyrutyru2011/01/08 17:55コントロールキャラクターを正規表現でのマッチに使うのは間違ってると思います。
http://groups.google.com/group/vim_dev/browse_thread/thread/177047f7871fdb10/
> Yes, using "\<Plug>" as a regexp will give unpredictable behavior.
> It's not a valid pattern.

tyrutyru2011/01/08 18:03あ、読みとばしちゃってましたすみません。typoだったんですね。

tyrutyru2011/01/08 18:13よく見たら2008年だった軽く死にたい。

DmitryDmitry2013/05/03 02:28It's good to see someone tihnknig it through.

hampupqighampupqig2013/05/06 01:46as2muL <a href="http://yjvvfskdyieq.com/">yjvvfskdyieq</a>

jrwyppjrwypp2013/05/08 11:48mNQfQk , [url=http://ruzbykvidmxx.com/]ruzbykvidmxx[/url], [link=http://ohcrswkhhqlg.com/]ohcrswkhhqlg[/link], http://wxdkbjaytrcl.com/

uophpxxruophpxxr2013/05/08 11:48SDQ89r , [url=http://zluduovrjtms.com/]zluduovrjtms[/url], [link=http://xcqmnfkwbcwn.com/]xcqmnfkwbcwn[/link], http://tctcjveuqqsn.com/

トラックバック - http://vim.g.hatena.ne.jp/eclipse-a/20081105
 | 
最近のコメント
最近のトラックバック
カレンダー
<< 2008/11 >>
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
カウンター
96052