質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

1回答

7335閲覧

vimで未知の関数と表示される

ohyama

総合スコア29

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2020/01/08 06:11

編集2020/01/08 13:50

###前提・実現したい事
vimをカスタマイズしていきたいのですが、タブキーを押して変換候補が出る・バックスペースで変換候補を閉じる・エンターで候補を決定というようにしたいのですが、これら3つのキーを押すと、未知の関数ですと表示されて上手く行きません。

###発生している問題・エラーメッセージ
エンターを押したとき

E117:未知の関数です: neosnippet#expandable

バックスペースを押したとき

E117:未知の関数です: neocomplete#smart_close_popup

タブを押したとき

E117:未知の関数です: neosnippet#jampable

###該当のソースコード

set encoding=utf-8 scriptencoding utf-8 "↑1行目は読み込み時の文字コードの設定 "↑2行目はVim Script内でマルチバイトを使う場合の設定 "Vim "Scriptにvimrcも含まれるので、日本語でコメントを書く場合は先頭にこの設定が必要になる "dein Scripts----------------------- if &compatible set nocompatible "Be improved endif "必要なもの: set runtimepath+=$HOME/.cache/dein/repos/github.com/Shougo/dein.vim "必要なもの: if dein#load_state('$HOME/.cache/dein') call dein#begin('$HOME/.cache/dein') "Let dein manage dein "必要なもの: call dein#add('$HOME/.cache/dein/repos/github.com/Shougo/dein.vim') "Add or remove your plugins here: "molokaiのカラーテーマ call dein#add('tomasr/molokai') "構文チェックを行なう call dein#add('scrooloose/syntastic') "()を補完する call dein#add('Townk/vim-autoclose') "()色付け call dein#add('itchyny/lightline.vim') "インデントの色付け call dein#add('Yggdroot/indentLine') "末尾の全角と半角の空白文字を赤くハイライト call dein#add('bronson/vim-trailing-whitespace') "コードの自動補完(neocomplete・neosnippet・neosnippet-snippets) if has('lua') "自動補完 call dein#add('Shougo/neocomplete.vim') "スニペットの補完機能 call dein#add('Shougo/neosnippet.vim') "スニペット集 call dein#add('Shougo/neosnippet-snippets') endif call dein#end() call dein#save_state() endif "必要なもの filetype plugin indent on syntax enable "必要なもの if dein#check_install() call dein#install() endif "End dein Scripts---------------------- "molokai let g:molokai_original=1 "-------------------------------------- "文字 "-------------------------------------- set fileencoding=utf-8 "保存時の文字コード set fileencodings=ucs-boms,utf-8,euc-jp,cp932 "読み込み時の文字コードの自動判別 set fileformats=unix,dos,mac "改行コードの自動判別 set ambiwidth=double "文字が崩れる問題を解決 "-------------------------------------- "ステータスライン "-------------------------------------- set laststatus=2 "ステータスラインを常に表示 set showmode "現在のモードを表示 set showcmd "売ったコマンドをステータスラインの下に表示 set ruler "ステータスラインの右側にカーソルの位置を表示する "-------------------------------------- "コマンドモード "-------------------------------------- set wildmenu "コマンドモードの補完 set history=5000 "保存するコマンド履歴の数 "-------------------------------------- "タブ・インデント "-------------------------------------- set expandtab "タブ入力を複数の空白入力に置き換える set tabstop=2 "画面上でタブ文字が占める幅 set softtabstop=2 "連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅 set autoindent "改行時に前の行のインデントを継続する set smartindent "改行時に前の行の構文をチェックし次の行のインデントを増減する set shiftwidth=2 "smartindentで増減する幅 "--------------------------------------- "カラースキーム "--------------------------------------- colorscheme molokai set t_Co=256 "--------------------------------------- "文字列検索 "--------------------------------------- set incsearch "インクリメンタルサーチ set ignorecase "検索パターンに大文字・小文字を区別しない set smartcase "検索パターンに大文字を含んでいたら大文字・小文字を区別する set hlsearch "検索結果をハイライト "ESCキー2度押しでハイライトの切り替え nnoremap <silent><Esc><Esc> :<C-u>set nohlsearch!<CR> "--------------------------------------- "カーソル "--------------------------------------- set whichwrap=b,s,h,l,<,>,[,],~ "カーソルの左右移動で行末から次の行の行頭への移動が可能になる set number "行番号を表示 set cursorline "カーソルラインをハイライト "行が折り返し表示されていた場合、行単位ではなく表示行単位でカーソルを移動する nnoremap j gj nnoremap k gk nnoremap <down> gj nnoremap <up> gk "バックスペースキーの有効化 set backspace=indent,eol,start "-------------------------------------- "カッコ・タグの対応 "-------------------------------------- set showmatch "括弧の対応関係を一瞬表示する source $VIMRUNTIME/macros/matchit.vim "vimの「%」を拡張する "-------------------------------------- "マウスでカーソル移動とスクロール "-------------------------------------- if has('mouse') set mouse=a if has('mouse_sgr') set ttymouse=sgr elseif v:version > 703 || v:version is 703 && has('patch632') set ttymouse=sgr else set ttymouse=xterm2 endif endif "-------------------------------------- "クリップボードからのペースト "-------------------------------------- "挿入モードでクリップボードからペーストする時に自動でインデントさせないようにする if &term =~ "xterm" let &t_SI .= "\e[?2004h" let &t_EI .= "\e[?2004l" let &pastetoggle = "\e[?201~" function XTermPasteBegin(ret) set paste return a:ret endfunction inoremap <special> <expr> <Esc>[200~ XTermPasteBegin("") endif "--------------------------------------- "neocomplete・neosnippetの設定 "--------------------------------------- "vim起動時にneocompleteを有効にする let g:neocomplete#enable_at_startup=1 "smartcase有効化。大文字が入力されるまで大文字・小文字の区別を無視する let g:neocomplete#enable_smart_case=1 "3文字以上の単語に対して補完を有効にする let g:neocomplete#min_keyword_length=3 "区切り文字まで補完する let g:neocomplete#enable_auto_delimiter=1 "1文字目の入力から補完のポップアップを表示 let g:neocomplete#auto_completion_start_length=1 "バックスペースで補完のポップアップを閉じる inoremap <expr><BS> neocomplete#smart_close_popup()."<C-h>" "エンターキーで補完候補の確定。スニペットの展開もエンターキーで確定 imap <expr><CR> neosnippet#expandable() ? "<Plug>(neosnippet_enpand_or_jump)" : pumvisible() ? "<C-y>" : "<CR>" "タブキーで補完候補の選択。スニペット内のジャンプもタブキーでジャンプ imap <expr><TAB> pumvisible() ? "<C-n>" : neosnippet#jumpable() ? "<Plug>(neosnippet_expand_or_jump)" : "<TAB>" "--------------------------------------- "Syntastic "--------------------------------------- "構文エラー行に「>>」を表示 let g:syntastic_enable_signs=1 "他のプラグインと競合するのを防ぐ let g:syntastic_always_populate_loc_list=1 "構文エラーリストを非表示 let g:syntastic_auto_loc_list=0 "ファイルを開いた時に構文エラーチェックを実行する let g:syntastic_check_on_open=1 "「:wq」で終了するときも構文エラーチェックする let g:syntastic_check_on_wq=1 "JavaScript用。構文エラーチェックにESLintを使用 let g:syntastic_javascript_checkers=['eslint'] "--------------------------------------- "CtrlP "--------------------------------------- let g:ctrlp_match_window='order:ttb,min:20,max:20,result:100' "マッチウィンドウの設定 let g:ctrlP_show_hidden=1 ".(ドット)から始まるファイルも検索対象にする let g:ctrlP_types=['fil'] "ファイル検索のみ使用 let g:ctrlP_extensions=['funky', 'commandline'] "CtrlPの拡張として「funky」と「commandline」を使用 "CtrlPCommandLineの有効化 command! CtrlPCommandLine call ctrlp#init(ctrlp#commandline#id()) "CtrlPFunkyの絞り込み検索設定 let g:ctrlp_funky_matchtype='path' if executable('ag') let g:ctrlp_use_caching=0 "CtrlPのキャッシュを使わない let g:ctrlp_user_command='ag %s -i --hidden -g ""' "「ag」の検索設定 endif

###試したこと
luaが有効になってないのかなと思い

vim --version | grep lua

で確認したところ+luaと表示されていて、neocomplete.vimやneosnippetはインストールされていたので、多分.vimrcの書き方が原因なのだと思います。

###補足情報
OS:FrreeBSD12.1
Vim:8.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

neosnippet.vim が正常にインストールできていないからかもしれません。プラグイン名に.vimが抜けていますので call dein#add('Shougo/neosnippet') の行を call dein#add('Shougo/neosnippet.vim') 変えて再度、試してみてください。

参考までに neosnippet.vim のREADMEからの抜粋です。

call dein#add('Shougo/neosnippet.vim') call dein#add('Shougo/neosnippet-snippets')

https://github.com/Shougo/neosnippet.vim#deinvim

投稿2020/01/08 06:27

編集2020/01/08 06:51
yaegassy

総合スコア44

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ohyama

2020/01/08 12:15

後ろに「.vim」をつけて.vimrcを修正後、もう一度vimを起動すると、 [dein] copy command faild. [dein] cmdline: cp -Ra '/root/.cache/dein/repos/github.com/bronson/vim-traling-whitespace/*' '/root/.cache/dein/.cache/.vimrc/.dein' [dein] copy command faild. [dein] cmdline: cp -Ra '/root/.cache/dein/repos/github.com/Shougo/dein.vim/doc/*' '/root/.cache/dein/.cache/.vimrc/.dein/doc' [dein] Done: と表示されて、何やら失敗したように思えます。既にインストール済みの物を削除しなければならないんでしょうか?
ohyama

2020/01/08 12:31

一応失敗した2つのコマンドをコマンドラインから直で実行してコピーはしましたが、依然として「未知の関数です」と表示されます。
yaegassy

2020/01/08 13:23 編集

.vimrc を修正した後はVimを起動して :call dein#update() を実行してください
ohyama

2020/01/08 13:49

:call dein#update()を実行した後も、エラー内容に変化はありませんでした。
ohyama

2020/01/08 13:52

すみません、変化ありました。ENTERキーとTabキーは効くようになりました。バックスペースキーは未だに同じエラーが出たままです。
ohyama

2020/01/08 13:54

またまたすみません。何回かvimを起動→終了→起動→終了というのを繰り返していたら、正常に動くようになりました。お手数おかけして申し訳ありませんでした。ありがとうございました。
yaegassy

2020/01/08 14:06

もしかして、どなたかの過去の古い記事の設定を参考にコピペされたのでしょうか?過去の類似の質問内容、類似な設定内容で、作者のShougoさんが回答しているものがありますのでそちらを参考にしてみてください。 https://teratail.com/questions/116046#reply-176414
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問