文章目录

  • 说明
  • 1. 插件管理插件安装和使用(vim-plug)
  • 2.插件使用方法
  • 3.主题
  • 4.额外的

将下面的内容,粘贴到~/.vimrc文件中,在按照使用方法来安装和配置即可。

let g:mapleader = ",""""""""""""""""""""""""""""""""""""""
"basis settingd                     "
"""""""""""""""""""""""""""""""""""""
"high-light
syntax enable
syntax on
set nocp
set ru
"support mouse move and select
set mouse=a
"the space number of tab-key is 4
set tabstop=4
"next line keep with former line
set autoindent
"show line in col 80
"set cc=80:
set shiftwidth=4
"check file-type
filetype on
"show the row and line of mouse
set ruler
"undo file
set undofile
set undodir=$HOME/.vim/undodir
"
set showmatch
"show line number
set number
"show result for search when input one character
set incsearch
"ignore low-high case for search
set smartcase
set list
set listchars=tab:>-,trail:-
"
set paste
set smartindent
set matchtime=5
set cindent
" high-light show this col and row
set cursorline
"set cursorcolumn
" high-light search
set hlsearch
"tab convert to space
set expandtab
"show cmd
set showcmd
"prohibit generate swap=file
set nobackup
set noswapfile
" no high-light
nmap <F2> :noh<cr>
" support 256 colors
set t_Co=256
""""""""""""""""""""""""""""""""""""""
"quick-print                         "
""""""""""""""""""""""""""""""""""""""
function PRINT()call append(line("."), "fflush(stdout);")call append(line("."), "printf(\"[%s],[%d]\\n\",__FUNCTION__,__LINE__);")
endfunction
map <F8> : call PRINT() <cr>""""""""""""""""""""""""""""""""""""""
"winmanger setting                   "
""""""""""""""""""""""""""""""""""""""
" wm :map winmanager
nmap wm :WMToggle<cr>
let g:winManagerWindowLayout='FileExplorer'""""""""""""""""""""""""""""""""""""""
"ctags settings                "
""""""""""""""""""""""""""""""""""""""
"loading ctags-file path
"tg :map open or close taglist
nmap tg :TlistToggle<Cr>
"nmap to :TlistOpen<cr>
"tc :map close taglist
"nmap tc :TlistClose<cr>
"ctags bin patch
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File = 1
let Tlist_Exit_OnlyWindow = 1
"auto open taglist 1--auto  0--manual
let Tlist_Auto_Open=1
"taglist direction 0--right 1--left
let Tlist_Use_Right_Window = 0
"""""""""""""""""""""""""""""""""""""""
"cscpoe setting                       "
"""""""""""""""""""""""""""""""""""""""
"loading cscpoe.out
if has("cscope")set csprg=/usr/bin/cscopeset csto=0set cstset nocsverbif filereadable("cscope.out")cs add cscope.outelselet cscope_file=findfile("cscope.out",".;")let cscope_pre=matchstr(cscope_file,".*/")if !empty(cscope_file) && filereadable(cscope_file)exe "cs add" cscope_file cscope_preendifendifset csverb
endif
"maping quick-key
"css :find this C symbol
nmap css :cs find s <C-R>=expand("<cword>")<CR><CR>
"csg :find this function defination
nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR>
"csc :find the function where be called
nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>
"cst :find this string
nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR>
"csf :find this file
nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR>
"csi :find this file which file include
nmap csi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
"csd :find function call which function
nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR>"""""""""""""""""""""""""""""""""""""""""""
" nerd-tree settings                      "
"""""""""""""""""""""""""""""""""""""""""""
" auto  open nerd-tree
autocmd VimEnter * NERDTree
" nt open/close nerdtree
nmap nt :NERDTreeToggle<cr>
" the direction of nerd-tree
let NERDTreeWinPos="right"
" show bookmarks
let NERDTreeShowBookmarks=1
" auto close nerd-tree when only alive nerd-tree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" set nerd-tree show pic
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
" show nerd-tree line number
"let g:NERDTreeShowLineNumbers=1
" dont show hidden file
let g:NERDTreeHidden=0
"Making it prettier
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1"""""""""""""""""""""""""""""""""""""""""
" neocomplete settings                  "
"""""""""""""""""""""""""""""""""""""""""
"Note: This option must be set in .vimrc(_vimrc).  NOT IN .gvimrc(_gvimrc)!
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
" Use smartcase.
let g:neocomplete#enable_smart_case = 1
" Set minimum syntax keyword length.
let g:neocomplete#sources#syntax#min_keyword_length = 3" Define dictionary.
let g:neocomplete#sources#dictionary#dictionaries = {\ 'default' : '',\ 'vimshell' : $HOME.'/.vimshell_hist',\ 'scheme' : $HOME.'/.gosh_completions'\ }" Define keyword.
if !exists('g:neocomplete#keyword_patterns')let g:neocomplete#keyword_patterns = {}
endif
let g:neocomplete#keyword_patterns['default'] = '\h\w*'" Plugin key-mappings.
inoremap <expr><C-g>     neocomplete#undo_completion()
inoremap <expr><C-l>     neocomplete#complete_common_string()" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function()return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>"" For no inserting <CR> key."return pumvisible() ? "\<C-y>" : "\<CR>"
endfunction
" <TAB>: completion.
inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
" Close popup by <Space>.
"inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>"" AutoComplPop like behavior.
"let g:neocomplete#enable_auto_select = 1" Shell like behavior(not recommended).
"set completeopt+=longest
"let g:neocomplete#enable_auto_select = 1
"let g:neocomplete#disable_auto_complete = 1
"inoremap <expr><TAB>  pumvisible() ? "\<Down>" : "\<C-x>\<C-u>"" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags" Enable heavy omni completion.
if !exists('g:neocomplete#sources#omni#input_patterns')let g:neocomplete#sources#omni#input_patterns = {}
endif
"let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::'
"let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)'
"let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'" For perlomni.vim setting.
" https://github.com/c9s/perlomni.vim
let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::'""""""""""""""""""""""""""""""""""""""""""
" rainbow settings                       "
""""""""""""""""""""""""""""""""""""""""""
"auto open rainbow
let g:rainbow_active = 1
" type
let g:rainbow_conf = {
\   'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],
\   'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
\   'operators': '_,\|+\|-_',
\   'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'],
\   'separately': {
\       '*': {},
\       'tex': {
\           'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/'],
\       },
\       'css': 0,
\   }
\}"""""""""""""""""""""""""""""""""""""""""""
" nerd-commenter                          "
"""""""""""""""""""""""""""""""""""""""""""
let g:NERDSpaceDelims = 1
let g:NERDDefaultAlign = 'left'
let g:NERDToggleCheckAllLines = 1"""""""""""""""""""""""""""""""""""""""""""
" minbufferexploer                        "
"""""""""""""""""""""""""""""""""""""""""""
let g:miniBufExplMapWindowNavVim =1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1"""""""""""""""""""""""""""""""""""""""""""
" theme                                   "
"""""""""""""""""""""""""""""""""""""""""""
"colorscheme molokai
"colorscheme solarized
colorscheme gruvbox
set background=dark
let g:molokai_original = 1
let g:rehash256 = 1"""""""""""""""""""""""""""""""""""""""""""
" interestingword settings                "
"""""""""""""""""""""""""""""""""""""""""""
nnoremap <silent> <leader>k :call InterestingWords('n')<cr>
nnoremap <silent> <leader>K :call UncolorAllWords()<cr>
nnoremap <silent> n :call WordNavigation(1)<cr>
nnoremap <silent> N :call WordNavigation(0)<cr>
"let g:interestingWordsGUIColors = ['#8CCBEA', '#A4E57E', '#FFDB72', '#FF7272', '#FFB3FF', '#9999FF']
let g:interestingWordsTermColors = ['154', '121', '211', '137', '214', '222']"""""""""""""""""""""""""""""""""""""""""""
" LeaderF                                 "
"""""""""""""""""""""""""""""""""""""""""""
" let g:Lf_ShortcutF = '<C-P>'
" let g:Lf_WindowPosition = 'popup'
" let g:Lf_PreviewInPopup = 1"""""""""""""""""""""""""""""""""""""""""""
"CtrlP                                    "
"""""""""""""""""""""""""""""""""""""""""""
let g:ctrlp_map = '<c-p>'
let g:ctrlp_working_path_mode = 'ra'
let g:ctrlp_switch_buffer = 'et'
let g:ctrlp_match_window = 'bottom,order:btt,min:1,max:10,results:10'"""""""""""""""""""""""""""""""""""""""""""
" vim-airline                             "
"""""""""""""""""""""""""""""""""""""""""""
language messages zh_CN.utf-8
set encoding=utf-8
set langmenu=zh_CN.UTF-8
set helplang=cn
set ambiwidth=double
let laststatus = 2
let g:airline_powerline_fonts = 1
let g:airline_theme="dark"
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#buffer_nr_show = 1"""""""""""""""""""""""""""""""""""""""""""
"syntastic                                "
"""""""""""""""""""""""""""""""""""""""""""
" let g:syntastic_enable_signs = 1
" let g:syntastic_error_symbol='✗'
" let g:syntastic_warning_symbol='►'
" let g:syntastic_always_populate_loc_list = 1
" let g:syntastic_auto_loc_list = 1
" let g:syntastic_loc_list_height = 5
" let g:syntastic_check_on_open = 1
" let g:syntastic_auto_jump = 1
" let g:syntastic_check_on_wq = 0
" let g:syntastic_enable_highlighting=1
" let g:syntastic_cpp_checkers = ['gcc']
" let g:syntastic_cpp_compiler = 'gcc'
" let g:syntastic_cpp_compiler_options = '-std=c++11'
" let g:syntastic_python_checkers = ['pyflakes']
" function! <SID>LocationPrevious()
"   try
"     lprev
"   catch /^Vim\%((\a\+)\)\=:E553/
"     llast
"   endtry
" endfunction
" function! <SID>LocationNext()
"   try
"     lnext
"   catch /^Vim\%((\a\+)\)\=:E553/
"     lfirst
"   endtry
" endfunction
" nnoremap <silent> <Plug>LocationPrevious    :<C-u>exe 'call <SID>LocationPrevious()'<CR>
" nnoremap <silent> <Plug>LocationNext        :<C-u>exe 'call <SID>LocationNext()'<CR>
" nmap <silent> sp    <Plug>LocationPrevious
" nmap <silent> sn    <Plug>LocationNext
" nnoremap <silent> <Leader>ec :SyntasticToggleMode<CR>
" function! ToggleErrors()
"     let old_last_winnr = winnr('$')
"     lclose
"     if old_last_winnr == winnr('$')
"         " Nothing was closed, open syntastic error location panel
"         Errors
"     endif
" endfunction
"""""""""""""""""""""""""""""""""""""""""""
" vim-plug settings and install           "
"""""""""""""""""""""""""""""""""""""""""""
"manager plug
call plug#begin('~/.vim/plugged')
Plug 'mhinz/vim-startify'
" YouCompleteMe
"Plug 'Valloric/YouCompleteMe'
" nerd-tree
Plug 'scrooloose/nerdtree'
" code release
Plug 'scrooloose/nerdcommenter'
" rainbow
Plug 'luochen1990/rainbow'
" fzf
"Plug 'junegunn/fzf'
"Plug '/usr/local/opt/fzf'
"Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
"Plug 'junegunn/fzf.vim'
" neoconplete
" Plug 'Shougo/neocomplete'
" wimmanager
Plug 'vim-scripts/winmanager'
" ctags
Plug 'esukram/vim-taglist'
" minibufexploer
Plug 'fholgado/minibufexpl.vim'
" molokai theme
"Plug 'tomasr/molokai'
" solarized theme
"Plug 'altercation/vim-colors-solarized'
" gruvbox theme
Plug 'morhetz/gruvbox'
"
"Plug 'vim-airline/vim-airline-themes'
" mark char
"Plug 'mbriggs/mark.vim'
" high-light interestwaords
Plug 'lfv89/vim-interestingwords'
" neocpmplete
Plug 'shougo/neocomplete.vim'" Plug 'Yggdroot/LeaderF', { 'do': ':LeaderfInstallCExtension' }
Plug 'ctrlpvim/ctrlp.vim'
" vim-airline"
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
"syntastic"
" Plug 'scrooloose/syntastic'
call plug#end()

说明

1. 插件管理插件安装和使用(vim-plug)

(要是没有curl可以下载安装一下)
sudo apt-get install curl
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
sudo ~/.vimrc
call plug#begin('~/.vim/plugged')
" 安装的插件
call plug#end()

vim-plug相关命令

1.PlugStatus(显示当前所有插件的状态)
2.PlugInstall(显示插件安装过程)
3.PlugUpdate
4.PlugClean
5.....

推荐一个插件网站,里面很多插件,并且告诉如何通过vim-plug进行安装和配置:vimawesome

在使用PlugInstall的时候,可能由于各种原因,下载很缓慢或者直接下载失败,我一般都是一个一个插件下载,先把其他插件注释掉,然后下载成功了一个之后,再下载另外一个,下载失败后多尝试几次就可以了。

2.插件使用方法

图中标注3个信息栏位:

  • 文件信息栏:用于显示当前文件定义的函数名,宏之类的。用鼠标双击可以直接到函数的位置。是由插件taglist控制的。通过按键“tg”打开和关闭这个栏位,默认是打开的。
  • 目录栏:用于显示打开当前文件是路径下文件夹和文件名,可以通过双击打开文件和进入文件夹。由插件nerdtree控制的。通过按键“nt”打开和关闭这个栏位,默认是打开的。
  • 文件状态栏:显示当前文件状态,比如总行数之类的,是由插件vim-airline控制的。

其他的一些功能:

  • 高亮显示选中的字符:通过按键“,k”(注意是逗号)来显示和关闭高亮。高亮后乐意通过‘n’向后查找高亮的字符,通过‘N’向前查找高亮的字符。

  • 注释code:通过按键“,cs”来注释掉选中的代码或者当前行。通过按键“,cu”来撤销注释选中的代码或者当前行。

  • 跳转:在平时看代码的时候,需要跳转到函数定义的地方。使用按键CTRL+}跳转到函数定义的地方,CTRL+T跳转会上一层。

  • 搜索:看代码时,希望搜索某个函数或者变量在哪里被调用或者使用。使用快捷键csc来查看某个函数被调用的地方,使用快捷键cst可以看当前项目使用该函数(包括函数声明)或者变量的地方。

其中跳转和搜索都是基于项目的并且需要考cscope来实现,下面需要安装和配置一下

sudo apt-get update
sudo apt-get install cscope在项目代码目录下执行
cscope -Rbq
执行cscope会产生三个文件,重要的是cscope.out

按照上述配置之后跳转和搜索功能就可以正常使用了。但是有个问题是,因为平时不仅仅会看代码,还会进行修改,cscope.out的信息是不会变的,所以会导致跳转和搜索后,跳转的位置不多或者有差别。因此需要手动把cscope.*文件删除,再手动执行cscope -Rbq重新生成一下cscope文件。生成了cscope文件之后,我们可以在项目下通过vim -t <function_name>,直接跳转到该函数的位置。

如果不习惯用文件定义的跳转和搜索快捷键的,可以自己修改下面列出来的nmap后面的即可

"csc :find the function where be called
nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>
"cst :find this string
nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>
  • 代码补全:在INSERT模式下,打出若干个字符后按CTRL+p就可以显示提示,根据需要选择即可。除了这一条命令需要在INSERT模式下使用,其他命令都需要在命令模式下才有效。
  • 文件搜索:在当前路径下搜索并打开文件。在命令模式下按CTRL+p,即可搜索。
文件信息栏    : tg
目录栏      :nt
高亮        :,k   n   N
注释        :,cs
取消注释     :,cu
跳转        : CTR+}
搜索        : csc cst
代码补全    :(INSERT mode) CTRL+p
文件搜索    :(COMMAND mode) CTRL+p

3.主题

" molokai theme
"Plug 'tomasr/molokai'
" solarized theme
"Plug 'altercation/vim-colors-solarized'
" gruvbox theme
Plug 'morhetz/gruvbox'

目前这里有三个主题,个人习惯gruvbox。喜欢其他两个的可以打开注释,把另外两个注释掉,然后PlugInstall就可以了。

4.额外的

按u可以撤销上次修改,撤销内容放在了$HOME/.vim/undodir,如果没有undodir需要手动建一下。
F8可以直接打印(因为是做C开发的)
printf(“[%s],[%d]\n”,__FUNCTION__,__LINE__);
fflush(stdout);

vim插件快速配置使用(自己的vim插件配置)相关推荐

  1. (2/3) windows下vim配置dbext插件连接oracle直接执行sql语句--补充配置OBI ODBC interface 安装odbc数据源,让字段显示没有那么宽

    1 显示结果如下 2 找github对应perl版本和vim版本号 echo has('perl') return 0 主要原因是  vim  perl  如果操作系统64   最好vim和perl的 ...

  2. vim学习日志(5):vim下wimrc的配置,解决中文乱码问题

    解决linux下vim乱码的情况:(修改vimrc的内容) 全局的情况下:即所有用户都能用这个配置 文件地址:/etc/vimrc 在文件中添加: set fileencodings=utf-8,uc ...

  3. 配置一下自己的vim

    在讲之前首先讲一下vim配置文件的位置和基本的结果.如果你只是想简单的配置一下自己的vim,根本无需了解vim的脚本,只需按照如下操作即可,否则你要百度一下vim的脚本了.首先在你安装好vim之后会在 ...

  4. Vim保姆级教程 宏录制 寄存器 映射 插件

    命令行快捷键 ctrl+a 移动到行首 ctrl+e 移动到行尾 ctrl+b 往前移动 ctrl+f 往后移动 ctrl+h 删除上一个字符 ctrl+w 删除上一个单词 ctrl+u 删除当前行 ...

  5. ale插件 vim_如何优雅的使用 Vim(二):插件介绍

    如何优雅的使用 Vim(二):插件介绍 插件使用 vim-plug 管理.很长一段时间,我都在用 Vundle,切换到 vim-plug 并非完全必要. " 插件定义开始 call plug ...

  6. 如何从零配置高效的tensorflow python编程环境之VIM神的编辑器---DIY自己的VIM

    Title: 如何从零开始在WIN10上编译安装vim并配置python开发环境 Authors: Jason zhao Date: 2018年9月24日08点04分 DIY自己的VIM 在windo ...

  7. 【vim编辑器配置】Linux / Ubuntu 傻瓜式配置 vim + 功能齐全 + 方便好用

    [vim编辑器配置]Linux / Ubuntu 傻瓜式配置vim + 功能齐全 + 方便好用 本文主要讲述, Linux/Ubuntu系统如何配置vim,让其变得高端大气上档次,皮实好用功能全. W ...

  8. ide怎么设置方法中间加一道横线_像IDE那样使用VIM(快速入门版)

    Vim是一款文本编辑工具,她本身并无像 VSCode 或 Jetbrain系列 那样的功能,例如:代码的诊断,重构分析等IDE功能. 但这并不意味着 :Vim不能拥有IDE的功能. 如何拥有呢? 需要 ...

  9. 配置基于python的VIM环境

    配置基于python的VIM环境 安装插件管理工具 为防止过多插件管理的麻烦,首先安装vim的插件管理工具Vundle.vundle本身的github软件已经有相关的中文文档,地址如下: vundle ...

最新文章

  1. matlab练习程序(图像放大/缩小,最邻近插值)
  2. python 遍历目录_Python遍历目录的4种方法实例介绍
  3. php fpm.conf 注释,使用sed处理php-fpm.conf和nginx.conf文本里的注释信息
  4. Cpp 对象模型探索 / 编译器为对象创建缺省构造函数的条件
  5. boost::hana::detail::any_of用法的测试程序
  6. vue render函数
  7. 【CentOS 7LAMP架构4】,PHP5和PHP7的安装和配置#171219
  8. Intel 64 and IA-32 Architectures Instruction Format 指令格式
  9. c语言成绩管理系统不用结构体,不用指针链表和结构体数组怎么编学生成绩管理系统啊...
  10. 进制转换 [2008年北京大学图形实验室计算机研究生机试真题]
  11. C++ 中两个数据交换总结
  12. 用Java实现一个视频聊天软件
  13. win7锁定计算机后怎么打开,win7电脑怎么设置锁屏
  14. HTML读取xml文件的三种办法
  15. cmd - 切换目录命令cd失效(切换目录失效)
  16. sql 中or与in的查询效率对比
  17. 七星彩长奖表图_够力七星彩奖表长条图最新版
  18. Android密钥证书学习
  19. Hi,你想要的在线创建架构图都在这儿!(一)
  20. 将一个接口响应时间从2s优化到 200ms以内的一个案例

热门文章

  1. FLIR红外热像仪维修案例
  2. Django(5)-路由配置实例
  3. 服务器TCP握手超时的一种情况(服务器不回SYN ACK)
  4. HBULIDER怎么和后台数据库进行链接获取数据
  5. Elasticsearch 日志监控方案
  6. 2023上海化妆品原料展览会
  7. MATLAB双精度向下取整问比实际小1的问题
  8. MATLAB算法实战应用案例精讲-【连接分析】PageRank(附MATLAB、C++、R语言、Java和Python代码)
  9. 7-9 目录树 (30分)
  10. 设计一个低成本的无线传感器网络节点