teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2016/03/02 08:28

投稿

norio13
norio13

スコア53

answer CHANGED
@@ -1,5 +1,5 @@
1
- 解決しました。
1
+ 直接キーを取得できるわけではないのですがそれっぽいことが出来たので解決しました。
2
- 行数短めで見やすいように<C-n>と<C-x><C-o>のみ対応したコードす。
2
+ 行数短めで見やすいように<C-n>と<C-x><C-o>のみ対応したコードを載せます。
3
3
 
4
4
  ```vim
5
5
  inoremap <expr><C-n> pumvisible() ? "\<C-n>" : <SID>F(0)

2

修正

2016/03/02 08:27

投稿

norio13
norio13

スコア53

answer CHANGED
@@ -2,10 +2,10 @@
2
2
  行数短めで見やすいように<C-n>と<C-x><C-o>のみ対応したコードです。
3
3
 
4
4
  ```vim
5
- inoremap <expr><C-n> pumvisible() ? "\<C-n>" : <SID>SetN(0)
5
+ inoremap <expr><C-n> pumvisible() ? "\<C-n>" : <SID>F(0)
6
- inoremap <expr><C-x><C-o> pumvisible() ? "\<C-x>\<C-o>" : <SID>SetN(1)
6
+ inoremap <expr><C-x><C-o> pumvisible() ? "\<C-x>\<C-o>" : <SID>F(1)
7
7
 
8
- function! s:SetN(n) abort
8
+ function! s:F(n) abort
9
9
  let l:s = [
10
10
  \ "\<C-n>",
11
11
  \ "\<C-x>\<C-o>",

1

修正

2016/03/02 08:25

投稿

norio13
norio13

スコア53

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  \ "\<C-x>\<C-o>",
12
12
  \ ]
13
13
  execute 'inoremap <expr><C-u> pumvisible() ? "\<C-u>' . l:s[a:n] . '" : "\<C-u>"'
14
- return "\<C-n>"
14
+ return l:s[a:n]
15
15
  endfunction
16
16
  ```
17
17