如果我使用ctrl-a
递增十六进制数字(或ctrl-x
递减),如果当前没有其他大写字母,则该数字将使用小写字母。
例如,如果我增加0x009
,我会获得0x00a
,但如果增加0xA09
,我会获得0xA0A
。
我希望它默认使用大写字母。有谁知道如何做到这一点?还有其他人关心吗?
答案 0 :(得分:7)
一个棘手的方法:
:nnoremap <C-A> m'<C-A>vUgUTx``
说明:
m' # Create a mark on digit to increment.
<C-A> # Control-A
v # Visual select current letter.
U # Set visual selection (current letter) to uppercase.
gUTx # Set to uppercase (gU) next movement: (Tx) from current position to previous 'x' letter.
`` # Go to position of previous mark.
因此,这种方式会创建与原始<C-A>
不同的小行为,例如,在这种情况下:
A hex number 0x0ba in lowercase.
^--- Cursor position
将在0x0ba
中设置0x0BB
,但是光标将从n
返回到number
字母,insteat将其位置设置为递增的数字。您可以使用标记来更改此行为。我希望这可以提供帮助。
答案 1 :(得分:6)
可以使用0X
而不是0x
为十六进制常量加前缀
使Vim在添加或减去它们时使用大写字母。