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

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

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

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

FreeBSD

FreeBSDは、Unix系のオープンソースのOSです。PC/AT互換機用ですが、他のプラットフォームにも移植されています。優れたネットワーク・セキュリティ・ストレージ機能で人気のOSです。ソースコードと共に無償で公開されており、多くの コミュニティによって長年に渡って開発されています。

Q&A

解決済

2回答

1839閲覧

vimでバックスペースが使えない

ohyama

総合スコア29

Vim

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

FreeBSD

FreeBSDは、Unix系のオープンソースのOSです。PC/AT互換機用ですが、他のプラットフォームにも移植されています。優れたネットワーク・セキュリティ・ストレージ機能で人気のOSです。ソースコードと共に無償で公開されており、多くの コミュニティによって長年に渡って開発されています。

0グッド

0クリップ

投稿2020/01/09 01:25

編集2020/01/09 12:31

###前提・実現したい事
vimを使ってバックスペースキーを押すことで文字を消したいというかバックスペースが有効になってほしいのですが、バックスペースを押した途端にエラーが出て文字を消すことが出来ません。.vimrcでバックスペースで補完のポップアップを閉じるような書き方をしているのですがこれが悪さをしている気がします。また、vimの起動中に

:source ~/.vimrc

と入力するとその他にもいろいろエラーが見つかりました。ひょっとしたらこのエラーが原因してるかもしれないので、分かる方回答お願いします。

###発生している問題・エラーメッセージ

/root/.cache/dein/repos/github.com/Shougo/unite.vim/plugin/unite/bookmark.vimの処理中にエラーが検出されました。行 49: E117: 未知の関数です: unite#custom#action 行 50: E117: 未知の関数です: unite#custom#action ColorScheme Autocommands for "*" の処理中にエラーが検出されました。 E117: 未知の関数です: lightline#update E117: 未知の関数です: lightline#update #バックスペースを押したとき E117: 未知の関数です: neocomplete#smart_close_popup

###該当のソースコード
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', {'merged': 0})
"構文チェックを行なう
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#add('Shougo/vimproc.vim', {'build': 'make'})
" ファイルオープンを便利に
call dein#add('Shougo/unite.vim')
" Unite.vimで最近使ったファイルを表示できるようにする
call dein#add('Shougo/neomru.vim')

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

""""""""""""""""""""""""""""""
" Unit.vimの設定
""""""""""""""""""""""""""""""
" 入力モードで開始する
let g:unite_enable_start_insert=1
" バッファ一覧
noremap <C-P> :Unite buffer<CR>
" ファイル一覧
noremap <C-N> :Unite -buffer-name=file file<CR>
" 最近使ったファイルの一覧
noremap <C-Z> :Unite file_mru<CR>
" sourcesを「今開いているファイルのディレクトリ」とする
noremap :uff :<C-u>UniteWithBufferDir file -buffer-name=file<CR>
" ウィンドウを分割して開く
au FileType unite nnoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
au FileType unite inoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
" ウィンドウを縦に分割して開く
au FileType unite nnoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
au FileType unite inoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
" ESCキーを2回押すと終了する
au FileType unite nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
au FileType unite inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>
""""""""""""""""""""""""""""""
###試したこと
この質問を参考にエスケープしたりしたのですが、結果は変わりませんでした。

###補足
OS:FreeBSD12.1
vim:8.2

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

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

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

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

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

guest

回答2

0

自己解決

解決かは微妙ですが、

call dein#add('Shougo/vimproc.vim', {'build': 'make'}) " ファイルオープンを便利に call dein#add('Shougo/unite.vim') " Unite.vimで最近使ったファイルを表示できるようにする call dein#add('Shougo/neomru.vim')

を消して

"インデントの色付け call dein#add('Yggdroot/indentLine')

を削除し、全てのプラグインを一からインストールすることでなんとかバックスペースは使えるようになりました。

投稿2020/01/10 02:16

ohyama

総合スコア29

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

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

0

「x」キーとか「shift-x」キーではだめなのでしょうか?

投稿2020/01/09 01:39

yambejp

総合スコア114572

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

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

ohyama

2020/01/09 01:51

そりゃ消せますけど・・・バックスペースで補完のポップアップを閉じるというのが出来ないのが気にかかるんで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問