无与伦比的“。在点文件中 - 点文件中的”的功能是什么?
Unmatched ". in dotfile - what is the function of " in dotfiles?
我最近 运行 在尝试从 Vim 中删除突出显示时进入 this answer,因为不小心按了 # 键。我按照用户的代码在我的 .vimrc
文件的底部输入了这个:
" <Ctrl-l> redraws the screen and removes any search highlighting.
nnoremap <silent> <C-l> :nohl<CR><C-l>
我退出了Vim,运行source vimrc
并返回以下错误:
Unmatched ".
所以我认为这意味着双引号需要在行尾相应的句号,就像用户所做的那样。但是我正在查看我的 .vimrc
和 none of the "s have matching fullstops. 事实上,当我删除我插入的行并尝试 运行 source vimrc
,它仍然返回 Unmatched ".
错误。这是一个示例:
" main
syntax enable
set encoding=utf-8
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set smarttab
set number
set showcmd
set bs=2 " use backspace in INSERT mode
"set nomodeline " turn off modeline parsing
还有一个:
" split nav
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
我这里的问题是我不明白这里的"的作用,谷歌或者搜索以前的SO问题都没有找到任何信息。它似乎像评论一样使用,但我以为 # 用于注释。我是一个完整的 Linux 初学者 - 我不知道修复点文件的正确语法是什么,如果它需要修复的话。
所以我的问题是双重的:
我该如何解决这个问题?我是否应该遍历整个点文件并在以 "?
开头的每一行末尾添加句号
" 到底有什么作用?
我相信我正在使用 TCSH。
编辑: 这是点文件:
" main
syntax enable
set encoding=utf-8
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set smarttab
set number
set showcmd
set bs=2 " use backspace in INSERT mode
"set nomodeline " turn off modeline parsing
set cursorline
set autoindent
filetype indent on
filetype on
filetype plugin on
set wildmenu " autocomplete menu
set lazyredraw " redraw only when necessary
set showmatch " highlight matching parentheses
set smartcase
set incsearch " search as char entered
set hlsearch " highlight search matches
nnoremap #<space> :nohlsearch<CR> " #<space> turn off search hl
set foldenable " enable folding
set foldlevelstart=10 " open most folds be default
set foldnestmax=10 " 10 nested fold max
nnoremap <space> za " space open/closes fold
set foldmethod=indent " fold based on indent level
nnoremap j gj " move down visually
nnoremap k gk " move up visually
nnoremap gV `[v`] " highlight latest - ins mode
" status line that shows more information than the default one
" set statusline=%F%m%r%h%w\ [FMT=%{&ff}]\ [T=%Y]\ [HEX=\%02.2B]\ [POS=%04l,%04v\ (%p%%)]\ [lines=%L]
" set laststatus=2
" split
set splitbelow
set splitright
" split nav
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
您似乎将 shell 点文件与您的 .vimrc
混淆了。 Shell 来源 shell 点文件,而 vim 来源 vimrc。 Shell 不理解 vimrc 表示法,特别是 "
为 vim 引入了注释,而它在 shell 中开始了一个双引号单词。 shell 期望双引号成对出现,这就是为什么你得到 Unmatched "
.
换句话说,不要告诉 shell 到 source .vimrc
,只需启动 vim
它会自动为您提供 $HOME/.vimrc
,因为该功能内置于 vim.
如果您在 vim 中更改 .vimrc
(为什么要使用其他编辑器?)那么您可以在不退出 vim 的情况下通过键入 :source ~/.vimrc
和使更改生效。
我最近 运行 在尝试从 Vim 中删除突出显示时进入 this answer,因为不小心按了 # 键。我按照用户的代码在我的 .vimrc
文件的底部输入了这个:
" <Ctrl-l> redraws the screen and removes any search highlighting.
nnoremap <silent> <C-l> :nohl<CR><C-l>
我退出了Vim,运行source vimrc
并返回以下错误:
Unmatched ".
所以我认为这意味着双引号需要在行尾相应的句号,就像用户所做的那样。但是我正在查看我的 .vimrc
和 none of the "s have matching fullstops. 事实上,当我删除我插入的行并尝试 运行 source vimrc
,它仍然返回 Unmatched ".
错误。这是一个示例:
" main
syntax enable
set encoding=utf-8
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set smarttab
set number
set showcmd
set bs=2 " use backspace in INSERT mode
"set nomodeline " turn off modeline parsing
还有一个:
" split nav
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
我这里的问题是我不明白这里的"的作用,谷歌或者搜索以前的SO问题都没有找到任何信息。它似乎像评论一样使用,但我以为 # 用于注释。我是一个完整的 Linux 初学者 - 我不知道修复点文件的正确语法是什么,如果它需要修复的话。
所以我的问题是双重的:
我该如何解决这个问题?我是否应该遍历整个点文件并在以 "?
开头的每一行末尾添加句号" 到底有什么作用?
我相信我正在使用 TCSH。
编辑: 这是点文件:
" main
syntax enable
set encoding=utf-8
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set smarttab
set number
set showcmd
set bs=2 " use backspace in INSERT mode
"set nomodeline " turn off modeline parsing
set cursorline
set autoindent
filetype indent on
filetype on
filetype plugin on
set wildmenu " autocomplete menu
set lazyredraw " redraw only when necessary
set showmatch " highlight matching parentheses
set smartcase
set incsearch " search as char entered
set hlsearch " highlight search matches
nnoremap #<space> :nohlsearch<CR> " #<space> turn off search hl
set foldenable " enable folding
set foldlevelstart=10 " open most folds be default
set foldnestmax=10 " 10 nested fold max
nnoremap <space> za " space open/closes fold
set foldmethod=indent " fold based on indent level
nnoremap j gj " move down visually
nnoremap k gk " move up visually
nnoremap gV `[v`] " highlight latest - ins mode
" status line that shows more information than the default one
" set statusline=%F%m%r%h%w\ [FMT=%{&ff}]\ [T=%Y]\ [HEX=\%02.2B]\ [POS=%04l,%04v\ (%p%%)]\ [lines=%L]
" set laststatus=2
" split
set splitbelow
set splitright
" split nav
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
您似乎将 shell 点文件与您的 .vimrc
混淆了。 Shell 来源 shell 点文件,而 vim 来源 vimrc。 Shell 不理解 vimrc 表示法,特别是 "
为 vim 引入了注释,而它在 shell 中开始了一个双引号单词。 shell 期望双引号成对出现,这就是为什么你得到 Unmatched "
.
换句话说,不要告诉 shell 到 source .vimrc
,只需启动 vim
它会自动为您提供 $HOME/.vimrc
,因为该功能内置于 vim.
如果您在 vim 中更改 .vimrc
(为什么要使用其他编辑器?)那么您可以在不退出 vim 的情况下通过键入 :source ~/.vimrc
和使更改生效。