vim 神器的打造方式_光环大数据培训
NVIM配置打造
NVIM 配置打造NVIM 配置NVIM安装NVIM 配置init.vimvimrc.vim# 安装 NVIMbrew install nvimbrew install ranger# 需要有 python3 ⽀持brew install python3brew install node# 对 nvim 添加 python ⽀持pip3 install neovim pynvim# 输⼊ nvim 检测:checkhealthmkdir -p ~/.config/nvimnvim ~/.config/nvim/init.vim" 配置⽂件导⼊ "{{{" ---------------------------------------------------------------------" 基础使⽤习惯配置runtime ./vimrc.vim" 插件管理"./lua/plugins.lualua require('plugins')" 按键映射runtime ./maps.vimnvim ~/.config/nvim/vimrc.vim"----vim 个⼈使⽤习惯配置start------set encoding=UTF-8" leader 设置成空格let mapleader=" "" 使⽤⿏标set mouse=c" 显⽰⾏号set nu" 相对⾏号set relativenumber" tab=4个空格set tabstop=4set shiftwidth=4" 改变 vim 中光标的形状let g:db_ui_use_nerd_fonts=1let &t_SI.="\e[5 q" "SI = INSERT modelet &t_SR.="\e[4 q" "SR = REPLACE modelet &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)" ⾼度光标所在⾏"set cursorline" 设置不换⾏"set nowrapset wrap" 显⽰按下的按键set showcmd" 按tab 显⽰菜单set wildmenu" 不需要备份⽂件set nobackup"----vim 个⼈使⽤习惯配置end------"ssh 远程粘贴板if executable('clipboard-provider')let g:clipboard = {\ 'name': 'myClipboard',\ 'copy': {\ '+': 'clipboard-provider copy',\ '*': 'env COPY_PROVIDERS=tmux clipboard-provider copy',\ },\ 'paste': {\ '+': 'clipboard-provider paste',\ '*': 'env COPY_PROVIDERS=tmux clipboard-provider paste',\ },\ }endif"随机选⼀个颜⾊风格function RandomColorScheme()let mycolors = split(globpath(&rtp,"**/colors/*.vim"),"\n")exe 'so ' . mycolors[localtime() % len(mycolors)]unlet mycolorsendfunction"call RandomColorScheme():command NewColor call RandomColorScheme()" ⽂件类型设置 "{{{" ---------------------------------------------------------------------" JSX 语法⾼亮" set filetypes as typescriptreactautocmd BufNewFile,BufRead *.tsx,*.jsx,*.js set filetype=typescriptreact" 添加头部⽂件function HeaderPython()call setline(1, "#!/usr/bin/env python")call append(1, "# -*- coding: utf-8 -*-")call append(2, "# SR @ " . strftime('%Y-%m-%d %T', localtime()))normal Gnormal onormal oendfautocmd bufnewfile *.py call HeaderPython()maps.vimnvim ~/.config/nvim/maps.vim"-------------------------------------------------------------------------------" window"-------------------------------------------------------------------------------" Split windownmap ss :split<Return><C-w>wnmap sv :vsplit<Return><C-w>w" Move window"nmap <Space> <C-w>w"map s<left> <C-w>h"map s<up> <C-w>k"map s<down> <C-w>j"map s<right> <C-w>lmap sh <C-w>hmap sk <C-w>kmap sj <C-w>jmap sl <C-w>l" Resize window" 在mac/linux中使⽤Alt键,在webssh" 中alt没⽤,就使⽤Ctrl,WEBSSH主要的WINDOWS中使⽤nmap <M-left> <C-w><nmap <C-left> <C-w><nmap s<left> <C-w><nmap <M-right> <C-w>>nmap <C-right> <C-w>>nmap s<right> <C-w>>nmap <M-up> <C-w>+nmap <C-up> <C-w>+nmap s<up> <C-w>+nmap <M-down> <C-w>-nmap <C-down> <C-w>-nmap s<down> <C-w>-" 插⼊模式移动光标inoremap <C-h> <Left>inoremap <C-j> <Down>inoremap <C-k> <Up>inoremap <C-l> <Right>inoremap <C-d> <Delete>" hh在我⽤的单词⾥出现的频率极低,其实感觉home⽤的没有end多,统⼀风格都⽤⼤写的吧"inoremap HH <Home>" 单词中包含ll的太多了,所以⽤⼤写LL"inoremap LL <End>" jk <Esc>inoremap jk <Esc>" 插⼊模式⿏标滚轮抵消,不然会出现滚动⿏标录⼊了⼀堆5j5kinoremap 5k <Esc>inoremap 5j <Esc>inoremap 9<CR> <Esc>a" 快速跳转⾏⾸与⾏尾nnoremap L $nnoremap H ^" 向下5⾏noremap <C-j> 5j" 向上5⾏noremap <C-k> 5k" 保存noremap <C-s> :w<CR>noremap s :w<CR>" Coc智能处理,使⽤IDEA Alt+Enter 同样按键"noremap <M-Enter> :CocAction<CR>inoremap <C-s> <ESC> :w<CR>" 代码格式化noremap <leader>f :Format<CR>noremap <leader>r :luafile ~/.wp/lua/run.lua<CR>" 强制退出map Q :q<CR>"map qq :q<CR>" 重新加载设置map R :source $MYVIMRC<CR>"⾃动关闭标签inoremap <buffer> <C-v> <esc>yiwi<lt><esc>ea></><esc>hpF>iset iskeyword+=<,>iab <h1> <lt>h1> <lt>/h1><esc>5ha" 全选nmap <C-a> gg<S-v>G" 加/减数字1nnoremap + <C-a>nnoremap - <C-x>"-------------------------------------------------------------------------------" Buffers"-------------------------------------------------------------------------------" Open current directory" 插⼊模式移动光标inoremap <C-h> <Left>inoremap <C-j> <Down>inoremap <C-k> <Up>inoremap <C-l> <Right>inoremap <C-d> <Delete>" hh在我⽤的单词⾥出现的频率极低,其实感觉home⽤的没有end多,统⼀风格都⽤⼤写的吧"inoremap HH <Home>" 单词中包含ll的太多了,所以⽤⼤写LL"inoremap LL <End>" jk <Esc>inoremap jk <Esc>" 插⼊模式⿏标滚轮抵消,不然会出现滚动⿏标录⼊了⼀堆5j5kinoremap 5k <Esc>inoremap 5j <Esc>inoremap 9<CR> <Esc>a" 快速跳转⾏⾸与⾏尾nnoremap L $nnoremap H ^" 向下5⾏noremap <C-j> 5j" 向上5⾏noremap <C-k> 5k" 保存noremap <C-s> :w<CR>" Coc智能处理,使⽤IDEA Alt+Enter 同样按键noremap <M-Enter> :CocAction<CR>inoremap <C-s> <ESC> :w<CR>" 代码格式化"noremap <leader>f :Format<CR>" 强制退出map Q :q<CR>" 重新加载设置map R :source $MYVIMRC<CR>"⾃动关闭标签inoremap <buffer> <C-v> <esc>yiwi<lt><esc>ea></><esc>hpF>iset iskeyword+=<,>iab <h1> <lt>h1> <lt>/h1><esc>5ha" 全选nmap <C-a> gg<S-v>G" 加/减数字1nnoremap + <C-a>nnoremap - <C-x>"-------------------------------------------------------------------------------" Buffers"-------------------------------------------------------------------------------" Open current directory"nmap te :tabedit"nmap <S-Tab> :tabprev<Return>nmap <S-Tab> :bprev<Return>"nmap <Tab> :tabnext<Return>nmap <Tab> :bnext<Return>" 窗⼝管理器" invoke with '-'nmap - <Plug>(choosewin)"nmap sw <Plug>(choosewin)"nmap <leader>w <Plug>(choosewin)PS:⼀些插件的快捷键在末尾当所有插件都配置完毕的时候将快捷键加⼊该⽂件中packer 插件管理器mkdir -p ~/.config/nvim/luanvim ~/.config/nvim/plugins.lua---@diagnostic disable: undefined-global--在没有安装packer的电脑上,⾃动安装packer插件local fn = vim.fnlocal install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'if fn.empty(fn.glob(install_path)) > 0 then--fn.system({'git', 'clone', '--depth', '1', 'https:///wbthomason/packer.nvim', install_path}) --默认地址fn.system({'git', 'clone', '--depth', '1', 'https:///mirrors/wbthomason/packer.nvim.git', install_path}) --csdn加速镜像 vim.cmd 'packadd packer.nvim'end-- Only required if you have packer configured as `opt`vim.cmd [[packadd packer.nvim]]return require('packer').startup({function()use 'wbthomason/packer.nvim'-- Packer can manage itselfend,config = {max_jobs = 16,git = {default_url_format = "https:///%s"},display = {open_fn = function()return require('packer.util').float({ border = 'single' })end}}})# 插件安装⽅式PackerInstall插件配置字体配置# 终端安装该字体并且选择该字体防⽌乱码brew tap homebrew/cask-fontsbrew install font-hack-nerd-font --casklualine标签栏美化安装配置bufferline 状态栏安装配置nvim ~/.config/nvim/lua/plugins.lua--状态栏插件use {"nvim-lualine/lualine.nvim",requires = {"kyazdani42/nvim-web-devicons", opt = true}}nvim ~/.config/nvim/after/plugin/lualine.lualocal status, lualine = pcall(require, "lualine")if (not status) thenreturnendlualine.setup {options = {icons_enabled = true,theme = "auto",component_separators = {left = " ", right = " "},section_separators = {left = " ", right = " "},disabled_filetypes = {},always_divide_middle = true},sections = {lualine_a = {"mode"},lualine_b = {"branch","diff"--{"diagnostics", sources = {"nvim_lsp"}}},lualine_c = {"filename"},lualine_x = {{"diagnostics", sources = {"nvim_lsp"}, symbols = {error = " ", warn = " ", info = " ", hint = " "}},"encoding","fileformat","filetype"},lualine_y = {"progress"},lualine_z = {"location"}},inactive_sections = {lualine_a = {},lualine_b = {},lualine_c = {"filename"},lualine_x = {"location"},lualine_y = {},lualine_z = {}},tabline = {},extensions = {}}-- bufferline 显⽰标签页,与lualine 配合使⽤use "akinsho/bufferline.nvim"nvim ~/.config/nvim/after/plugin/bufferline.lualocal status, bufferline = pcall(require, "bufferline")if (not status) thenreturnendvim.opt.termguicolors = truebufferline.setup {options = {--numbers = "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,--numbers = "both",--- @deprecated, please specify numbers as a function to customize the styling--number_style = "superscript" | "subscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2 --number_style = "none",close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"right_mouse_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"-- NOTE: this plugin is designed with this icon in mind,-- and so changing this is NOT recommended, this is intended-- as an escape hatch for people who cannot bear it for whatever reasonindicator_icon = "",buffer_close_icon = " ",modified_icon = "●",close_icon = " ",dashboard 开屏插件安装配置left_trunc_marker = " ",right_trunc_marker = " ",--- name_formatter can be used to change the buffer's label in the bufferline.--- Please note some names can/will break the--- bufferline so use this at your discretion knowing that it has--- some limitations that will *NOT* be fixed.name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"-- remove extension from markdown files for exampleif :match("%.md") thenreturn vim.fn.fnamemodify(, ":t:r")endend,max_name_length = 15,max_prefix_length = 12, -- prefix used when a buffer is de-duplicatedtab_size = 15,--diagnostics = false | "nvim_lsp" | "coc",diagnostics = "nvim_lsp",diagnostics_update_in_insert = false,--[[diagnostics_indicator = function(count, level, diagnostics_dict, context)return "(" .. count .. ")"end,]]-- rest of config ...--- count is an integer representing total count of errors--- level is a string "error" | "warning"--- diagnostics_dict is a dictionary from error level ("error", "warning" or "info")to number of errors for each level. --- this should return a string--- Don't get too fancy as this function will be executed a lotdiagnostics_indicator = function(count, level, diagnostics_dict, context)local icon = level:match("error") and " " or " "return " " .. icon .. countend,-- NOTE: this will be called a lot so don't do any heavy processing herecustom_filter = function(buf_number)--如果是defx 则隐藏local finded, _ = string.find(vim.bo[buf_number].filetype, "defx")if finded ~= nil thenreturn falseendreturn trueend,--offsets = {{filetype = "NvimTree", text = "File Explorer" | function , text_align = "left" | "center" | "right"}}, --show_buffer_icons = true | false, -- disable filetype icons for buffersshow_buffer_icons = true, -- disable filetype icons for buffers--show_buffer_close_icons = true | false,show_buffer_close_icons = false,--show_close_icon = true | false,show_close_icon = false,--show_tab_indicators = true | false,show_tab_indicators = true,persist_buffer_sort = true, -- whether or not custom sorted buffers should persist-- can also be a table containing 2 custom separators-- [focused and unfocused]. eg: { '|', '|' }--separator_style = "slant" | "thick" | "thin" | {"any", "any"},separator_style = "thin",--enforce_regular_tabs = false | true,enforce_regular_tabs = false,--always_show_bufferline = true | false,always_show_bufferline = true--[[sort_by = "id" | "extension" | "relative_directory" | "directory" | "tabs" | function(buffer_a, buffer_b)-- add custom logicreturn buffer_a.modified > buffer_b.modifiedend]]}}--按键映射--nnoremap <silent> gb :BufferLinePick<CR>vim.api.nvim_set_keymap("n", "gb", "<Cmd>BufferLinePick<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>1", "<Cmd>BufferLineGoToBuffer 1<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>2", "<Cmd>BufferLineGoToBuffer 2<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>3", "<Cmd>BufferLineGoToBuffer 3<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>4", "<Cmd>BufferLineGoToBuffer 4<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>5", "<Cmd>BufferLineGoToBuffer 5<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>6", "<Cmd>BufferLineGoToBuffer 6<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>7", "<Cmd>BufferLineGoToBuffer 7<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>8", "<Cmd>BufferLineGoToBuffer 8<CR>", {noremap = true, silent = true})vim.api.nvim_set_keymap("n", "<leader>9", "<Cmd>BufferLineGoToBuffer 9<CR>", {noremap = true, silent = true}) use {"glepnir/dashboard-nvim"}nvim ~/.config/nvim/after/plugin/dashboard.lualocal vim = vimvim.g.dashboard_custom_header = {""," ⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⠞⠉⢉⣭⣿⣿⠿⣳⣤⠴⠖⠛⣛⣿⣿⡷⠖⣶⣤⡀⠀⠀⠀ "," ⠀⠀⠀⠀⠀⠀⠀⣼⠁⢀⣶⢻⡟⠿⠋⣴⠿⢻⣧⡴⠟⠋⠿⠛⠠⠾⢛⣵⣿⠀⠀⠀⠀ "," ⣼⣿⡿⢶⣄⠀⢀⡇⢀⡿⠁⠈⠀⠀⣀⣉⣀⠘⣿⠀⠀⣀⣀⠀⠀⠀⠛⡹⠋⠀⠀⠀⠀ "," ⣭⣤⡈⢑⣼⣻⣿⣧⡌⠁⠀⢀⣴⠟⠋⠉⠉⠛⣿⣴⠟⠋⠙⠻⣦⡰⣞⠁⢀⣤⣦⣤⠀ "," ⠀⠀⣰⢫⣾⠋⣽⠟⠑⠛⢠⡟⠁⠀⠀⠀⠀⠀⠈⢻⡄⠀⠀⠀⠘⣷⡈⠻⣍⠤⢤⣌⣀ "," ⢀⡞⣡⡌⠁⠀⠀⠀⠀⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢿⡀⠀⠀⠀⠸⣇⠀⢾⣷⢤⣬⣉ "," ⡞⣼⣿⣤⣄⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠸⣿⣇⠈⠻ "," ⢰⣿⡿⢹⠃⠀⣠⠤⠶⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠀⣿⠛⡄⠀ "," ⠈⠉⠁⠀⠀⠀⡟⡀⠀⠈⡗⠲⠶⠦⢤⣤⣤⣄⣀⣀⣸⣧⣤⣤⠤⠤⣿⣀⡀⠉⣼⡇⠀ "," ⣿⣴⣴⡆⠀⠀⠻⣄⠀⠀⠡⠀⠀⠀⠈⠛⠋⠀⠀⠀⡈⠀⠻⠟⠀⢀⠋⠉⠙⢷⡿⡇⠀ ",defx ⽂件插件安装" ⣻⡿⠏⠁⠀⠀⢠⡟⠀⠀⠀⠣⡀⠀⠀⠀⠀⠀⢀⣄⠀⠀⠀⠀⢀⠈⠀⢀⣀⡾⣴⠃⠀ "," ⢿⠛⠀⠀⠀⠀⢸⠁⠀⠀⠀⠀⠈⠢⠄⣀⠠⠼⣁⠀⡱⠤⠤⠐⠁⠀⠀⣸⠋⢻⡟⠀⠀ "," ⠈⢧⣀⣤⣶⡄⠘⣆⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠻⣄⠀⠀⠀⢀⣠⡾⠋⢀⡞⠀⠀⠀ "," ⠀⠀⠻⣿⣿⡇⠀⠈⠓⢦⣤⣤⣤⡤⠞⠉⠀⠀⠀⠀⠈⠛⠒⠚⢩⡅⣠⡴⠋⠀⠀⠀⠀ "," ⠀⠀⠀⠈⠻⢧⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣻⠿⠋⠀⠀⠀⠀⠀⠀ "," ⠀⠀⠀⠀⠀⠀⠉⠓⠶⣤⣄⣀⡀⠀⠀⠀⠀⠀⢀⣀⣠⡴⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀ "," ","",}vim.g.dashboard_custom_section = {a = {description = { " 新 ⽂ 件 SPC fo" },command = "DashboardNewFile",},b = {description = { " 查找⽂件 SPC ff" },-- command = "Telescope fd",command = "Telescope fd find_command=fd,--hidden",},c = {description = { " 已⽤⽂件 SPC fh" },command = "Telescope oldfiles",},d = {description = { " 跳转标记 SPC fm" },command = "Telescope marks",},e = {description = { " 查看内容 SPC fw" },command = "Telescope live_grep",},f = {description = { " 查看主题 SPC tc" },command = "Telescope colorscheme",},g = {description = { " ∂ 查看命令 SPC fc" },command = "Telescope commands",},h = {description = { " 查看帮助 SPC fa" },command = "Telescope man_pages",},}vim.g.dashboard_disable_at_vimenter = 0vim.g.dashboard_footer_icon = " "vim.g.dashboard_preview_command = "bat"-- vim.g.dashboard_preview_pipeline = "lolcat -F 0.3"vim.g.dashboard_session_directory = "~/.config/nvim/.sessions"vim.g.dashboard_preview_file_height = 12vim.g.dashboard_preview_file_width = 80vim.g.dashboard_default_executive = "Telescope"# 安装-- ⽂件管理插件,类似与ranger 。
第04章_Vim编辑器PPT课件
22
4.3 末行模式命令
1. 退出命令 2. 显示和取消行号 3. 行号与文件 4. 字符串搜索 5. 正文替换 6. 删除正文 7. 恢复文件 返回本章目录 使用前请先按 ESC 键确定在命令模式下按 ‘:’ 或 ‘/’
或 ‘?’ 叁键即可进入末行模式
精选PPT课件
23
4.3 末行模式命令
1. 退出命令
ZZ在命令模式下可以用 ZZ 命令退出 vi 编 辑程序,该命令保存对正文所作的修改,覆 盖原始文件。
:wq或:x 先保存再退出vi :w或 :w filename 保存/保存为filename名
精选PPT课件
14
4.1 Vim编辑器简介
可按<Esc>键,或用退格键将输入的命 令全部删除之后,再按一下退格键,即 可使 vi 回到命令模式下。
精选PPT课件
15
4.1 Vim编辑器简介
Vi编辑器的三种工作模式之间的转换如下:
Linux
退出Vi
Vi/vi文件
P108
文本插入命令 i、I、a、A、o、O 等
精选PPT课件
3
4.1 Vim编辑器简介
4.1.0 gedit 图形化文本编辑器 4.1.1 Vim编辑器概述 4.1.2 Vim编辑器的工作模式 返回本章目录
精选PPT课件
4
4.1 Vim编辑器简介
4.1.0 gedit 图形化文本编辑器
点击“应用程序”→“附件”→ “文本编辑 器”。
精选PPT课件
13
4.1 Vim编辑器简介
末行模式
在 vi 中,命令通常是单个键,如 i。在 命令模式下,用户按 “:” 键即可进入末 行模式下,此时 vi 会在屏幕的最后一行 显示一个“:”作为末行模式的提示符, 等待用户输入命令。多数文件管理命令 都是在此模式下执行的(如把编辑缓冲 区的内容写到文件中等)。末行命令执 行完后,vi 自动回到命令模式。
Vim-详细配置
Vim或Gvim详细配置配置一览:1、括号自动匹配[支持所有的括号类型以及引号等]2、一键添加语法模板、作者、时间等信息3、单源文件一键编译、运行[已配置支持所有主流编程语言]4、代码补全、函数跳转[由ctags实现]5、语法结构智能补全[由snipMate实现]6、在Vim里写博客、Wiki [由vimWiki实现]7、添加了Vim文档的简体中文版8、更多功能详见配置代码,本处提供配置文件和自定义配置文件夹的下载,下载链接请见本文末尾经过着色的配置文件:--------------------------------------------------使用说明:如果想图省事,那你就重新安装你的Vim到D:\Apps\Gvim,然后执行以下步骤:1、把整个vimfiles目录复制到D:\Apps\Gvim目录下覆盖原有目录2、将ctags.exe、cscope.exe、unzip.exe复制到D:\Apps\Gvim\vim73目录3、将D:\Apps\Gvim\vim73添加进环境变量4、把_vimrc文件复制到D:\Apps\Gvim目录下覆盖原有文件[有完整版和无Vimwiki版,建议使用后一版本] [如需使用wiki功能则可使用完整版,并参考完成环境的配置]配置文件中,凡涉及具体路径信息的请更换为你自己本机实际路径,凡涉及姓名、邮箱的请更换为你自己的姓名、邮箱------------------------ctags使用方法简要介绍:比如我想添加C/C++语言的代码补全,并能在函数调用间实现跳转,请执行以下步骤:1、首先确保系统能够找到ctags.exe,也就是ctags.exe添加到了系统环境变量2、以MinGW为例,到你编译器安装目录的include目录(比如C:\MinGW\include)执行ctags -R --languages=c,c++,这将在include目录下生成一个tags文件3、在_vimrc文件中添加以下一行:set tags+=C:\MinGW\include\tags4、以后编辑C/C++源文件时,按Ctrl + P即可拥有C/C++的代码提示。
vim使用进阶
. vim使用进阶: lookupfile插件 [/blog/archives/advanced-vim-skillslookupfile-
plugin/]
如果你在开发一个大的项目,当你想在一大堆文件中查找或者编辑指定文件时,Lookupfile插
按键映射等;另外一种是利用前面文章所介绍的会话(session)机制。
. vim使用进阶: 使用标签(tag)文件 [/blog/archives/advanced-vimskills-
use-ctags-tag-file/]
本文介绍了如何使用Exuberant ctags生成tag文件以及在vim中如何使用tag文件进行跳转、查
我使用docbook重新整理了一下这些文章,你可以在这里下载html版本的vim使用进阶2009年前文
章打包 [/blog/uploads/vim/advanced_vim_skills_html.zip],现在也提
供PDF版本 [/blog/uploads/vim/advanced_vim_skills_pdf.zip]下载。
11. 乱花渐欲迷人眼 - 语法高亮 ................................................. 38
12. 程序员的利器 - cscope ..................................................... 42
. vim使用进阶: 乱花渐欲迷人眼 - 语法高亮 [/blog/archives/advancedvim-
skills-syntax-on-colorscheme/]
VIM并不是只有黑色两色。正相反,它提供了非常灵活的机制允许用户自定义色彩。运行在终
vim工具的使用方法
vim工具的使用方法嗨,宝子!今天来唠唠vim这个超酷的工具呀。
vim刚打开的时候,你可能会有点懵。
它的界面看起来很简洁,但是功能超强大呢。
你进入vim后,就处在命令模式啦。
这时候你可以用各种快捷键来操作文件。
比如说,你想移动光标,h就是向左移动,j是向下,k向上,l向右,就像在玩一个简单的方向键游戏一样。
要是你想编辑文件内容,那得先进入插入模式。
按一下i键,就可以像在普通的文本编辑器里一样输入文字啦。
感觉就像打开了一扇通往编辑世界的小窗。
在插入模式下,你就尽情地码字吧。
当你编辑完一部分内容,想要保存文件了,这时候要先退回命令模式,按一下Esc键就好啦。
然后输入:w就可以保存文件啦。
如果想保存并且退出,那就输入:wq。
要是你不小心搞乱了文件,不想保存就退出,输入:q!就可以潇洒地离开,不带走一片云彩哦。
查找功能也很方便呢。
在命令模式下,输入/加上你要查找的内容,比如你想找“apple”这个单词,就输入/apple,然后按回车键,vim就会自动帮你找到这个单词在文件里的位置啦。
还有哦,如果你想复制粘贴内容。
在命令模式下,按yy就可以复制当前行,想粘贴的话就把光标移动到你要粘贴的地方,然后按p键,内容就乖乖地出现啦。
而且vim还有很多高级的功能。
比如说分屏显示。
你可以同时查看不同的文件或者文件的不同部分。
这就像是你可以一边看着菜谱,一边在厨房做菜一样方便。
不过这些高级功能可能需要你多花点时间去探索啦。
总的来说,vim一开始可能会让你觉得有点难上手,但是一旦你掌握了它的基本操作,就会发现它真的是一个超级高效、超级酷的文本编辑工具。
就像解锁了一个隐藏的宝藏,能让你在处理文本文件的时候如鱼得水呢。
宝子,快去试试吧。
FusionSphere特性介绍-VIMS文件系统
1、特性介绍虚拟镜像管理系统VIMS (Virtual Image Management System) 是一种高性能的集群文件系统,使用时先将数据存储先格式化成VIMS格式,然后挂载到CNA上进行使用。
VIMS文件系统使虚拟化技术的应用超出了单个存储系统的限制,其设计、构建和优化针对虚拟服务器环境,可让多个虚拟机共同访问一个整合的集群式存储池,从而显著提高了资源利用率。
VIMS 是跨越多个存储服务器实现虚拟化的基础,它可启用存储热迁移、存储动态资源调度(Storage Dynamic Resource Scheduler)和高可用性(High Availability) 等各种服务。
2、特性描述VIMS使虚拟化技术的应用超出了单个存储系统的限制,下面是VIMS的使用场景图。
图中CNA1-CNA4属于一个VIMS域,共享VIMS卷1。
CNA4、CNA5属于另一个VIMS域,共享VIMS卷2。
在一个VIMS域中每个CNA都可以看到完整的VIMS空间VIMS可提供分布式锁定管理功能来平衡访问,允许每个虚拟机和CNA服务器共享集群式存储池。
每个CNA 服务器都将它的虚拟机文件存储在VIMS文件系统内的特定子目录中。
当一个虚拟机运行时,VIMS 会将该虚拟机使用的虚拟机文件锁定,这样其他CNA便无法更新它们。
VIMS确保一个虚拟机磁盘可以被读共享,写独占。
VIMS文件系统具有如下特点:1、具有分层目录结构的文件系统2、应用于集群环境中的虚拟机3、锁定管理和分布式逻辑卷管理4、跨越多个存储盘区,动态扩展数据存储区5、具有日志记录的群集式文件系统可迅速恢复6、将整个虚拟机磁盘空间封装在单个目录中,每个虚拟机使用的磁盘空间在一个文件夹存放,管理方便。
VIM编辑器操作详解
VIM编辑器操作详解1 vim 使⽤介绍1.1 vim 安装# CentOS 安装:yum install -y vim# Ubuntu 安装:sudu apt-get install vim安装完成后,可使⽤ vim -v 查看版本号1.2 vim 命令格式vim [OPTION]... FILE...常⽤选项选项说明+n打开⽂件后,直接让光标处于第 n ⾏的⾏⾸;+默认⾏尾 ;vim + filename 末⾏⾏⾸+/PATTERN打开⽂件后,直接让光标处于第⼀个被PATTERN匹配到的⾏的⾏⾸;vim +/for filename ⽂件第⼀个for所在⾏的⾏⾸-b file⼆进制⽅式打开⽂件-d file1 file2...⽐较多个⽂件,相当于 vimdiff-m file只读打开⽂件-e file直接进⼊ ex 模式,相当于执⾏ ex file-y file Easy mode (like "evim", modeless),直接可以操作⽂件,`ctrl+o:wq说明:如果该⽂件存在,⽂件被打开并显⽰内容如果该⽂件不存在,当编辑后第⼀次存盘时创建它1.3 vim:模式化编辑器vim 是⼀个模式编辑器,击键⾏为是依赖于 vim的的“模式”三种常见模式:命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴⽂本插⼊(Insert)或编辑模式:⽤于修改⽂本扩展命令(extended command)或命令(末)⾏模式:保存,退出等模式转换命令模式 --> 插⼊模式命令解释i insert在光标所在处输⼊I在当前光标所在⾏的⾏⾸输⼊a append在光标所在处后⾯输⼊A在当前光标所在⾏的⾏尾输⼊o在当前光标所在⾏的下⽅打开⼀个新⾏O在当前光标所在⾏的上⽅打开⼀个新⾏插⼊模式 --- ESC-----> 命令模式命令模式 ---- : ----> 扩展命令模式扩展命令模式 ----ESC,enter----> 命令模式⽰例:插⼊颜⾊字符1 切换⾄插⼊模式2 按ctrl+v+[ 三个键,显⽰^[3 后续输⼊颜⾊信息,如:^[[32mhello^[[0m4 切换⾄扩展命令模式,保存退出5 cat ⽂件可以看到下⾯显⽰1.4 扩展命令模式按“:”进⼊Ex模式,创建⼀个命令提⽰符: 处于底部的屏幕左侧1.4.1 扩展命令模式基本命令命令解释w写(存)磁盘⽂件wq写⼊并退出x写⼊并退出X加密q退出q!不存盘退出,及时更改都将丢失r filename读⽂件内容到当前⽂件中w filename将当前⽂件内容写⼊另⼀个⽂件!command执⾏命令r!command读⼊命令的输出1.4.2 地址定界格式:start_pos,end_pos CMD1.4.2.1 地址定界格式命令解释| 表⽰特定的第#⾏,例如5即表⽰第5⾏,# | 指定⾏范围,从左侧 # 表⽰起始⾏,到右侧 # 表⽰结尾⾏,+# | 指定⾏范围,左侧为起始⾏绝对编号,右侧为相对左侧⾏号的偏移量,例如:3,+7,意思是从第3⾏开始,再向后加7⾏. | 表⽰当前⾏;如 :.,$y 表⽰复制从当前⾏开始到最后⼀⾏$ | 最后⼀⾏.,$-1 | 当前⾏到倒数第⼆⾏% | 表⽰全⽂, 相当于1,$/pattern/ | 从光标所在处起始向⽂件尾部,第⼀次被模式所匹配到的⾏,例,/first/,$ 表⽰从第⼀次能被first匹配的⾏开始到最后⼀⾏结束/pat1/,/pat2/ | 从光标所在处起始,第⼀次由 pat1 匹配到的⾏开始,⾄第⼀次由 pat2 匹配到的⾏结束之间的所有⾏,/pat/ | 从指定⾏开始,⼀直找到第⼀个匹配 pattern 的⾏结束/pat/,$ | 向下找到第⼀个匹配 patttern 的⾏到整个⽂件的结尾的所有⾏1.4.2.2 地址定界后跟⼀个编辑命令命令解释d删除y复制w file将范围内的⾏另存⾄指定⽂件中r file在指定位置插⼊指定⽂件中的所有内容可同编辑命令⼀同使⽤,实现编辑操作:d,y,c,w /path/to/somefile(将范围内的⽂本保存⾄指定的⽂件中)合并两个⽂件vim /etc/fstab:5r /tmp/test.txt将⽂件/tmp/test.txt写⼊到⽂件/etc/fstab第5⾏后⾯1.4.3 查找并替换格式s/要查找的内容/替换为的内容/修饰符说明要查找的内容:可使⽤基末正则表达式模式替换为的内容:不能使⽤正则表达式,如果“要查找的内容”部分在模式中使⽤分组符号,在“替换的内容”中使⽤后可以使⽤\1, \2, ...等后向引⽤符号;还可以使⽤“&”引⽤前⾯查找时查找到的整个内容直接引⽤查找模式匹配到的全部⽂本修饰符命令说明i查找时忽略⼤⼩写g全局替换,意味着⼀⾏中如果匹配多次,则均替换,默认情况下,每⼀⾏只替换第⼀次出现gc全局替换,每次替换前询问⽰例# 将⽂本中所有的this替换为This:%s/this/This/gi# 将⽂本中1到20⾏的this替换为This:1,20s/this/This/gi# 将⽂本中所有的t替换为T,还要保持t后⾯的字符不变:%s@\<t\([[:alpha:]]\+\)\>@T\1@g# 将⽂本中所有的t开头的,后⾯加上er:%s@\<t[[:alpha:]]\+\>@&er@g# 将⽂件中所有的enable=0替换为enable=1,将所有的gpgcheck=0替换为gpgcheck=1:%s@\(enable\|gpgcheck\)=0@\1=1@g查找替换中的分隔符/可替换为其它字符,如:#,@⽰例s@/etc@/var@gs#/boot#/#i1.4.4 定制 vim 的⼯作特性每个⼈都有⾃⼰喜欢的配置,⽐如背景颜⾊,空格缩进⼤⼩等,vim 提供配置⽂件供使⽤者保存⾃⼰的偏好,下⾯经常使⽤的配置⽂件:编辑:前登录⽤户的宿主⽬录下,⽐如root ⽤户就是/root/,⽂件为.vimrc注意:在末⾏模式下的设定,仅对当前vim进程有效扩展命令模式的配置只是对当前vim进程有效,可将配置存放在⽂件中持久保存配置⽂件/etc/vimrc # 全局~/.vimrc # ⽤户个⼈,可能需要创建命令说明⾏号显⽰set number,简写set nu⾏号取消显⽰set nomber,简写set nonu忽略字符⼤⼩写启⽤set ignorecase,简写 set ic忽略字符⼤⼩写禁⽤set noic括号匹配⾼亮匹配set showmatch,简称为set sm括号匹配⾼亮取消set noshowmatch,简称为set nosm⾃动缩进启⽤set autoindent,简写 set ai ⾃动缩进取消set noai复制保留格式启⽤set paste复制保留格式禁⽤set nopaste显⽰ Tab ^I 和换⾏符和 $ 显⽰set list取消 Tab ^I 和换⾏符和 $ 显⽰set nolist⾼亮搜索启⽤set hlsearch⾼亮搜索取消set nohlsearch 简写:nohl 语法⾼亮启⽤syntax on语法⾼亮取消syntax off⽂件格式启⽤windows格式:set fileformat=dos 启⽤unix格式:set fileformat=unix简写 set ff=dosTab ⽤空格代替启⽤set expandtab 默认为8个空格代替Tab Tab ⽤空格代替禁⽤set noexpandtab,简写:set etTab⽤指定空格的个数代替启⽤:set tabstop=# 指定#个空格代替Tab简写:set ts=4设置⽂本宽度set textwidth=65 (vim only) #从左向右计数set wrapmargin=15 #从右到左计数设置光标所在⾏的标识线启⽤set cursorline,简写 set cul设置光标所在⾏的标识线禁⽤set nocursorline加密启⽤set key=password机密禁⽤set key=命令说明了解更多set 帮助:help option-list:set or :set all⽰例cat ~/.vimrcset nu # ⾏号set sm # 括号匹配⾼亮set ai # ⾃动缩进set hlsearch # ⾼亮搜索syntax on # 语法⾼亮set colorscheme default # 设置颜⾊主题set nocompatible # vi 和 vim 兼容set noerorbells # 错误铃声set showmatch # 括号匹配查找set ignorecase # 查找忽略⼤⼩写set incsearch # 搜索时⾃动跳转光标set tabstop=4 # 空格set guifont=Menlo:h10 # 字体set autowrite # ⾃动存盘set history=3000set colorcolumn=821.5 命令模式命令模式,⼜称为Normal模式,功能强⼤,只是此模式输⼊指令并在屏幕上显⽰,所以需要记忆⼤量的快捷按键才能更好的使⽤1.5.1 退出 vim命令说明ZZ保存退出ZQ不保存退出1.5.2 光标跳转字符间跳转(Ncommand 跳转由 N 指定的个数的字符)命令说明h左命令说明l右j下k上单词间跳转(Ncommand 由 N 指定⼀次跳转的单词数)命令说明w下⼀个单词的词⾸e当前或下⼀个单词的词尾b当前或前⼀个单词的词⾸当前页跳转命令说明H页⾸M页中间⾏L页底zt将光标所在当前⾏移到屏幕顶端zz将光标所在当前⾏移到屏幕中间zb将光标所在当前⾏移到屏幕底端⾏⾸⾏尾跳转命令说明^跳转⾄⾏⾸的第⼀个⾮空⽩字符0跳转⾄⾏⾸$跳转⾄⾏尾⾏间跳转命令说明G | 跳转⾄由 # 号指定的⾏:# | 跳转⾄由第 # ⾏1G 和 gg | 跳转⾄第⼀⾏G | 跳转⾄最后⼀⾏句间跳转命令说明)跳转到下⼀句(跳转到上⼀句段落间跳转命令说明}下⼀段{上⼀段命令模式翻屏操作命令说明Ctrl+f向⽂件尾部翻⼀屏,相当于 PagedownCtrl+b向⽂件⾸部翻⼀屏,相当于 PageupCtrl+d向⽂件尾部翻半屏Ctrl+u向⽂件⾸部翻半屏Enter按⾏向后翻1.5.3 字符编辑命令说明x删除光标所在处的字符命令说明x | 删除光标所在处起始的 # 个字符xp | 交换光标所在处的字符与其后⾯的字符的位置,如serach,将光标放在r上,按xp,可以换成search | 转换⼤⼩写J | 删除当前⾏后的换⾏符1.5.4 替换命令(replace)命令说明r替换光标所在处的字符,如:将⼩写n替换为⼤写N,命令为 r 后⾯跟上NR切换成 REPLACE 模式(在末⾏出现-- REPLACE -- 提⽰),按 ESC 回到命令模式1.5.5 删除命令(delete)命令说明d删除命令,可结合光标跳转字符,实现范围删除d$删除当前字符⾄⾏尾的字符d^删除当前字符⾄⾮空⾏⾸的字符d0删除当前字符⾄⾏⾸的字符dwdw | 删除 # 个单词de |db |dd | 删除光标所在处的⾏,也⽀持加数字,如3dd是删除光标所在处的⾏起始的共3⾏dd | 多⾏删除D | 从当前光标位置⼀直删除到⾏尾,等同于d$1.5.6 粘贴命令(paste)命令说明p缓冲区中的内容如果为整⾏,则粘贴在当前光标所在⾏的下⽅,否则,则粘贴⾄当前光标所在处的后⽅P缓冲区中的内容如果为整⾏,则粘贴在当前光标所在⾏的上⽅,否则,则粘贴⾄当前光标所在处的前⽅1.5.7 复制命令(yank)命令说明y复制,⼯作⾏为相似于d命令y$y0y^yeywybyy复制⼀整⾏yy | 复制#⾏Y | 复制整⾏1.5.8 改变命令(change)从编辑模式-->输⼊模式,实际实现删除操作命令说明c$c^c0cbcecwcw |cc | 删除光标所在的⾏,并转换为输出模式,即删除当前⾏并输⼊新内容,相当于S cc | 删除#⾏C | 删除当前光标到⾏尾,并切换成插⼊模式,相当于c$1.5.9 查找命令说明/PATTERN从当前光标所在处向⽂件尾部查找能够被当前模式匹配到的所有字符串PATTERN 从当前光标所在处向⽂件⾸部查找能够被当前模式匹配到的所有字符串n 下⼀个,与命令⽅向相同N 上⼀个,与命令⽅向相反1.5.10 撤销(undo)操作命令说明u撤销最近的更改,相当于windows中ctrl+zu | 撤销此前的 # 个操作U | 撤消光标落在这⾏后所有此⾏的更改Ctrl+r | 撤销此前的撤销,相当于windows中crtl+y. | 重复执⾏前⼀个编辑操作. | 重复执⾏前 # 个编辑操作1.5.11 ⾼级⽤法<start position><command><end position>常见Command:y 复制、d 删除、gU 变⼤写、gu 变⼩写⽰例0y$ 命令0 →先到⾏头y →从这⾥开始拷贝$ →拷贝到本⾏最后⼀个字符⽰例:粘贴 song 100 次100isong [ESC]命令说明di"光标在” “之间,则删除” “之间的内容yi(光标在()之间,则复制()之间的内容vi[光标在[]之间,则选中[]之间的内容dtx删除字符直到遇见光标之后的第⼀个 x 字符ytx复制字符直到遇见光标之后的第⼀个 x 字符1.6 可视化模式在末⾏有”-- VISUAL -- “指⽰,表⽰在可视化模式允许选择的⽂本块命令说明v按字符选定,⾯向字符,-- VISUAL --V按⾏选定,⾯向整⾏,-- VISUAL LINE --ctrl-v⾯向块,-- VISUAL BLOCK --可视化键可⽤于与移动键结合使⽤w ) } 箭头等突出显⽰的⽂字可被删除,复制,变更,过滤,搜索,替换等⽰例:在⽂件指定⾏的⾏⾸插⼊#1、先将光标移动到指定的第⼀⾏的⾏⾸2、输⼊ctrl+v 进⼊可视化模式3、向下移动光标,选中希望操作的每⼀⾏的第⼀个字符4、输⼊⼤写字母 I 切换⾄插⼊模式5、输⼊ #6、按 ESC 键⽰例:在指定的块位置插⼊相同的内容1、光标定位到要操作的地⽅2、CTRL+v 进⼊“可视块”模式,选取这⼀列操作多少⾏3、SHIFT+i(I)4、输⼊要插⼊的内容5、按 ESC 键1.7 多⽂件模式命令说明:next下⼀个:prev上⼀个:first第⼀个:last最后⼀个:wall保存所有:qall不保存退出所有:wqall保存所有⽂件并退出例:vim file1 file2 file3在file1中 :next 切换到file2在file1中 :last 切换到file3在file3中 :prev 切换到file2在file3中 :first 切换到file1注:file1 和 file2 和 file3可以实现跨⽂件复制1.8 多窗⼝模式1.8.1 多⽂件分割命令说明-o⽔平或上下分割窗⼝-O垂直或左右分割窗⼝(vim only)⽰例vim -o|-O FILE1 FILE2 ...在窗⼝间切换,Ctrl+w <h|j|k|l>注意:单个⽂件也可以分割为多个窗⼝进⾏查看1.8.2 单⽂件窗⼝分割命令说明Ctrl+w,s split, ⽔平分割,上下分屏命令说明Ctrl+w,v vertical, 垂直分割,左右分屏ctrl+w,q取消相邻窗⼝ctrl+w,o取消全部窗⼝:wqall退出1.9 vim的寄存器有26个命名寄存器和1个⽆命名寄存器,常存放不同的剪贴版内容,可以在同⼀个主机的不同会话(终端窗⼝)间共享寄存器名称 a,b,...,z,格式: 寄存器放在数字和命令之间⽰例3"tyy 表⽰复制3⾏到t寄存器中,末⾏显⽰`3 lines yanked into "t`"tp 表⽰将t寄存器内容粘贴未指定,将使⽤⽆命名寄存器有10个数字寄存器,⽤0,1,...,9表⽰,0存放最近复制内容,1存放最近删除内容。
万能编辑器vi
万能编辑器【VI】 - 从入门到精通【电脑上功能最强的万能编辑器】VI - 从入门到精通正式开始vi 的模式vi 是在很久以前就写的程序。
在那个时候,键盘上没有现在熟悉的那么多功能键。
所以,vi 设计成通过输入字符和 ESC 来控制输入和修改文本。
可能这对于一些人来说是个遗憾,但是你会发现你不需要改变手在键盘上的位置就可以完成所有的功能。
结果是你的输入将快速起来。
为了完成交互的全屏幕编辑工作, vi 有三种模式。
插入模式 (insert) 用于输入文本。
在插入模式下,你输入的任何字符都将显示在屏幕并存于文件。
命令 (command) 模式用于大多数编辑功能。
在命令模式下,所有的输入都将产生一定的响应而不是直接到文本中,例如移动光标、删除一块文本、拷贝文本等。
第三个模式是执行另外的功能,例如查找、全局替换、处理多个文件等。
这种模式是基于 ex 编辑器的。
启动 vi当 vi 启动后,默认的模式是命令模式。
按照下面的步骤试一试:输入程序名称启动 vi :$ vi你将看到类似下面的东西:~~~~~~~~~~~~~~~~~~~~~~~~~Empty bufferi--插入现在我们输入 "i" 进入插入模式。
字符 "i" 将不会回显。
此后你输入的任何东西都将显示在缓存中。
现在我们来输入一段文字。
例子中的话来自英文版的孙子兵法。
注意光标的位置在例子中是个下划线。
If wise, a commander is able to recognize changing circumstances and toact expediently. If sincere, his men will have no doubt of the certainty ofrewards and punishments. If humane, he loves mankind, sympathizes with others,and appreciates their industry and toil. If courageous, he gains victory byseizing opportunity without hesitation. If strict, his troops are disciplinedbecause they are in awe of him and are afraid of punishment.Shen Pao-hsu ... said: 'If a general is not courageous he will be unableto conquer doubts or to create great plans.'~~~~~~~~~~~~~~~~Esc--Cancel当你输入完了,按下 Esc 键返回到命令模式。
配置及VIM编辑器使用技巧
第一章:配置及VIM编辑器使用技巧一.Windows XP 下的安装(略)二.Liunx 环境下的安装(略)三.Mysql四.创建ROR项目并启动项目配置:rails+mysql+Webrick在创建项目之前,首先我们要创建一个数据库:进入Mysql$:mysql -uroot -p123创建数据库demo_development $:create database demo_development default charset='utf8' 创建项目demo,在这里我们的项目与数据库Mysql连接,在终端下$:rails demo --database=mysqlcreatecreate app/controllerscreate app/helperscreate app/modelscreate app/views/layoutscreate config/environments.. .. .... .. ..create log/production.logcreate log/development.logcreate log/test.log进入项目$:cd demo查看生成的文件$: lsREADME app db lib public test vendorRakefile config doc log script tmp为了成功连接数据库,我们需要修改config/database.yml配置文件在Rails 里面,有三种运行环境:development开发环境.test测试环境以及production生产环境. 在默认情况下,我们使用的是development开发环境.所以我们只要做如下修改即可:development:adapter: mysqlencoding: utf8database: demo_developmentpool: 5username: rootpassword: 123socket: /tmp/mysql.sock回到终端, 输入命令$:script/server 启动项目.默认端口为3000.%script/server=> Booting WEBrick...=> Rails 2.2.2 application started on http://0.0.0.0:3000=> Ctrl-C to shutdown server; call with --help for options点击About your application’s e nvironment 链接查看配置信息效果图(1)##但有时我们会碰到这样的错误: 图2Session Error:CGI::Session::CookieStore::TamperedWithCookie in Rails/infoController#properties CGI::Session::CookieStore::TamperedWithCookie我们刷新这个页面即可解决.也可以利用-p 修改端口.script/server -p 3001*************待用Mysql Error:MissingSourceFile in Rails/infoController#propertiesno such file to load -- sqlite3。
TensorFlowOnSpark平台搭建_光环大数据培训
TensorFlowOnSpark平台搭建_光环大数据培训在过去几年中,神经网络已经有了很壮观的进展,现在他们几乎已经是图像识别和自动翻译领域中最强者 [1] 。
为了从海量数据中获得洞察力,需要部署分布式深度学习。
现有的DL框架通常需要为深度学习设置单独的集群,迫使我们为机器学习流程创建多个程序(见Figure 1)。
拥有独立的集群需要我们在它们之间传递大型数据集,从而引起不必要的系统复杂性和端到端的学习延迟。
TensorFlow是Google公司刚刚发布不久一款用于数值计算和神经网络的深度学习框架。
TensorFlowOnSpark是yahoo今年刚开源的一个项目,目的就是充分发掘TensorFlow在现有的大数据集群上进行高效深度学习的能力,利用 TensorFlowOnSpark,数据科学家和工程师们可以直接利用运行于CPU/GPU 架构上的Spark或者hadoop做分布式模型训练。
该库支持把现有的TensorFlow 程序切换到新的API,同时实现了模型训练的性能提升。
在开源公告里,雅虎说明了TensorFlowOnSpark想解决的问题,比如在深度神经网络训练中管理Spark数据管线之外的其他集群带来的运维负载,以网络I/O为瓶颈的数据集在训练集群的传入和传出,令人讨厌的系统复杂性,以及端到端的整体学习时延。
TensorFlowOnSpark的工作和雅虎之前开源的CaffeOnSpark相似。
现有的对TensorFlow和Spark的集成所做的努力,有DataBricks的TensorFrame,以及Amp Lab 的SparkNet,这些对于雅虎来说都是在正确方向上的迈进,但是在允许TensorFlow进程之间直接通信方面还是有所欠缺。
雅虎的目标之一,是让TensorFlowOnSpark成为一个完全对Spark 兼容的API,在一个Spark处理工作流里,其集成能力能跟SparkSQL、MLib 以及其他Spark核心库一样好。
Vi Vim编辑器工具软件使用手册
在多个文件之间的编辑切换:
在末行模式下:
:n 载入下一个文件 :N 载入上一个文件
当完成一个文件的编辑后,需要保存该文件,才可切换
两个文件之间的编辑切换:
命令模式下:
ctrl+shift+6
末行模式下:
:e#
vi命令大全
总结整理
vi打开、退出与保存退出 vi进入插入,末行模式的方法 vi返回命令模式的方法 vi的剪切/删除、复制、粘贴方法 vi的翻页、光标操作方法 vi的搜索与替换方法 vi编辑多个文件的方法 vi的环境设定以及自动启动配置文件
2、利用vi打开vi_test文件,打开时自动定位在第二行。
在第二行结尾,输入123456,回到命令模式。 在第二行开头,输入567890,回到命令模式。 另存为文件为vi_test1。
3、利用vi打开vi_test1
在第一行开头,输入abcdef,回到命令模式。 放弃保存,并退出。
Vi常用命令与快捷操作
:
命令
查找(自顶向下)
?
查找(自底向上)
三种保存方式
有三种方法保存当前编辑的文件 在末行模式下:
:w [filepath] 保存当前编辑的文件 :w! [filepath] 强制保存文件,若文件已存在则强行覆盖 若[filepath] 有指定,表示另存为文件。
四种退出方式
有四种方法可以退出vi返回到shell命令提示符:
实验与练习
vi的进与退出练习
1、通过vi打开/etc/passwd文件,并定位到第10行,然后退出。 2、使用vi新建文件,退出时保存路径名为/root/vi_test。 3、使用vi打开之前创建的/root/vi_test文件,在命令模式按键盘i 键进入插入模式,输入“hello world”,保存并退出。
vim的配置与使用
配置文件路径 : 全局位置 /etc/vimrc
建议只在自己的用户主目录下配置(只对当前用户起作用): 主目录下新建 .vimrc
பைடு நூலகம் 在里面输入
"這個檔案的雙引號 (") 是註解
set backspace=2 "可隨時用倒退鍵刪除
set autoindent "自動縮排
set smartindent " 智能对齐
set ruler "可顯示最後一行的狀態
set showmode "左下角那一行的狀態
set nu "可以在每一行的最前面顯示行號啦!
在命令模式下 :dig 会调出特殊符号列表 查看自己想要的,记住对应输入字符
在输入状态下 按 ctr + k 这时出现一个?提示符。继续输入b*,是不是一个“β”就上屏
2.待续……
ubuntu 11.04 vim的配置与使用
vi 可谓是linux中不得不学的编辑器了……下面是自己搜集整理的一些配置技巧……
环境: ubuntu 11.04
安装vim : sudo apt-get install vim
vim是vi的升级版,在使用方面更胜一筹
syntax on "進行語法檢驗,顏色顯示。
set showmatch "括号匹配模式
set incsearch " 搜索时一边输入一边显示效果
set tabstop=4 " tab键为4个空格
常用技巧
1. vim中输入特殊符号???
vim简单使用教程
vim简单使用教程vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。
下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。
非常不错。
——————————正文开始——————————你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。
Vim the Six Billion Dollar editorBetter, Stronger, Faster.学习vim并且其会成为你最后一个使用的文本编辑器。
没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。
我建议下面这四个步骤:1.存活2.感觉良好3.觉得更好,更强,更快4.使用VIM的超能力当你走完这篇文章,你会成为一个vim的superstar。
在开始学习以前,我需要给你一些警告:•学习vim在开始时是痛苦的。
•需要时间•需要不断地练习,就像你学习一个乐器一样。
•不要期望你能在3天内把vim练得比别的编辑器更有效率。
•事实上,你需要2周时间的苦练,而不是3天。
第一级–存活1.安装vim2.启动vim3.什么也别干!请先阅读当你安装好一个编辑器后,你一定会想在其中输入点什么东西,然后看看这个编辑器是什么样子。
但vim不是这样的,请按照下面的命令操作:•启动Vim后,vim在Normal模式下。
•让我们进入Insert模式,请按下键i 。
(陈皓注:你会看到vim左下角有一个–insert–字样,表示,你可以以插入的方式输入了)•此时,你可以输入文本了,就像你用“记事本”一样。
•如果你想返回Normal模式,请按ESC键。
现在,你知道如何在Insert和Normal模式下切换了。
下面是一些命令,可以让你在Normal模式下幸存下来:•i→Insert模式,按ESC回到Normal模式.•x→删当前光标所在的一个字符。
Vim文本编辑器教程
Vim文本编辑器教程第一章:介绍VimVim是一款重量级文本编辑器,广泛用于Unix和Linux操作系统中。
它是Vi编辑器的改进版本,提供了更多的功能和定制选项。
Vim支持多种编辑模式和插件,使得它成为程序员和系统管理员喜爱的工具之一。
第二章:Vim的基本操作2.1 启动Vim要启动Vim,在终端输入“vim”命令即可。
Vim将会打开一个空白编辑界面,准备开始编辑文本。
2.2 进入编辑模式一旦进入Vim,你将处于命令模式。
要开始编辑文本,需要切换到编辑模式。
可以按下“i”键进入插入模式,然后就可以开始编辑了。
2.3 退出编辑模式在编辑模式下编辑完文本后,可以按下“Esc”键返回到命令模式。
然后,可以使用命令来保存或退出编辑器。
2.4 保存和退出在命令模式下,输入“:w”命令即可保存文件。
输入“:q”命令退出编辑器。
如果文件有更改但尚未保存,可以使用“:q!”命令强制退出。
第三章:Vim的高级功能3.1 搜索和替换Vim提供了强大的搜索和替换功能,可以帮助用户快速定位和替换文本。
在命令模式下,可以使用“/”命令进行搜索。
例如,输入“/keyword”将会查找文本中的关键词"keyword"。
要替换文本,可以使用“:s/old/new/g”命令来将旧内容替换为新内容。
3.2 定位和跳转在Vim中,可以使用快捷键来快速定位和跳转到文本的不同位置。
例如,按下“gg”键将跳转到文件的开头,按下“G”键将跳转到文件的结尾。
还可以使用“:n”命令来跳转到指定行号。
3.3 多窗口编辑Vim支持将一个文件分成多个窗口同时编辑的功能。
可以使用“:split”命令将当前窗口分成两个水平窗口,使用“:vsplit”命令将当前窗口分成两个垂直窗口。
分割后,可以在窗口间切换,并在不同窗口中编辑不同的内容。
第四章:Vim的定制和扩展4.1 配置文件Vim的配置文件称为“.vimrc”,其中包含用户自定义的设置和映射。
neovim 用法
neovim 用法Neovim是一个现代化的文本编辑器,它是Vim的一个分支,提供了许多新的功能和改进。
下面是一些详细和精确的Neovim用法:1. 打开Neovim:在终端中输入`nvim`或者`neovim`命令来启动Neovim。
2. 打开文件:在Neovim中,可以通过输入文件路径来打开文件。
例如,要打开一个名为`myfile.txt`的文件,可以在命令模式下输入`:e myfile.txt`。
3. 编辑文本:在普通模式下,可以使用各种命令来编辑文本。
例如,要删除当前光标所在的字符,可以按下`x`键;要复制当前行,可以按下`yy`键;要粘贴已复制的文本,可以按下`p`键。
4. 切换模式:Neovim有三种模式,分别是普通模式、插入模式和可视模式。
普通模式用于导航和执行命令,插入模式用于输入文本,可视模式用于选择文本。
要从普通模式切换到插入模式,可以按下`i`键;要从插入模式返回普通模式,可以按下`Esc`键。
5. 保存文件:在普通模式下,可以使用`:w`命令来保存文件。
例如,要保存当前文件,可以在命令模式下输入`:w`并按下回车键。
6. 退出Neovim:在普通模式下,可以使用`:q`命令来退出Neovim。
如果当前文件有未保存的更改,可以使用`:q!`命令来强制退出而不保存更改。
7. 设置配置:Neovim的配置文件为`init.vim`,位于`~/.config/nvim/`目录下。
可以编辑该文件来自定义Neovim的行为和外观。
8. 插件管理:Neovim支持使用插件来扩展功能。
可以使用插件管理器(如Vim-Plug、Vundle、Pathogen等)来安装和管理插件。
安装插件后,可以在Neovim的配置文件中添加相应的配置来启用插件。
这些是Neovim的一些基本用法,你可以根据自己的需求进一步探索和学习Neovim的高级功能和命令。
neovim 用法
neovim 用法摘要:一、Neovim 简介1.Neovim 的起源2.Neovim 与Vim 的关系二、Neovim 的安装与配置1.安装Neovim2.配置Neovim3.常用插件介绍三、Neovim 的基本操作1.启动与退出2.界面布局3.快捷键概述四、Neovim 的高级功能1.扩展编辑功能2.文件操作3.编程与自动化五、Neovim 的实践应用1.提高编辑效率2.代码片段与自动补全3.配置文件管理正文:【Neovim 简介】eovim 是一款基于Vim 编辑器的现代化、跨平台的文本编辑器。
它不仅继承了Vim 编辑器的所有功能,还在此基础上进行了许多改进和扩展,使其更加适应现代编程环境的需求。
Neovim 支持多种编程语言,并且具有高度可定制性,用户可以根据自己的需求进行各种定制与优化。
【Neovim 的安装与配置】1.安装Neovim:Neovim 支持多种操作系统,包括Windows、macOS 和Linux。
用户可以根据自己的操作系统选择合适的安装包进行安装。
安装完成后,可以通过命令行启动Neovim。
2.配置Neovim:Neovim 的配置文件位于用户主目录下的`.config/neovim`文件夹中。
用户可以修改`init.vim`文件进行基本配置,也可以根据需要创建其他配置文件。
此外,Neovim 支持众多插件,用户可以通过插件管理工具(如vim-plug)安装和管理插件,以满足自己的需求。
【Neovim 的基本操作】1.启动与退出:在命令行中输入`neovim`或`nvim`命令即可启动Neovim。
在编辑器中输入`:q!`或`:quit`命令可以退出Neovim。
2.界面布局:Neovim 采用多窗口布局,用户可以通过`:split`、`:vsplit`和`:tabnew`命令创建新的窗口。
此外,还可以使用`:resize`命令调整窗口大小。
3.快捷键概述:Neovim 的快捷键操作丰富多样,用户可以通过查阅官方文档或使用`:help`命令了解详细快捷键列表。
khadas vim3编译
khadas vim3编译
(最新版)
目录
1.KHADAS VIM3 简介
2.KHADAS VIM3 的编译过程
3.KHADAS VIM3 的编译结果
4.KHADAS VIM3 的编译意义
正文
1.KHADAS VIM3 简介
KHADAS VIM3 是一款由 KHADAS 公司开发的人工智能助手,其主要功能是协助用户进行知识类写作。
这款助手具有强大的自然语言处理能力,能够根据用户的需求快速生成高质量的文章。
2.KHADAS VIM3 的编译过程
为了使用 KHADAS VIM3,首先需要对其进行编译。
编译过程分为以下几个步骤:
(1)环境搭建:首先,需要在计算机上安装 Python 和 PyTorch 等深度学习框架,以及相关的依赖库。
(2)下载预训练模型:从 KHADAS 官网上下载预训练的模型参数,这些参数是 KHADAS VIM3 进行知识类写作的基础。
(3)编译模型:利用 Python 和 PyTorch 等工具,对下载的模型参数进行编译,生成一个可执行的模型文件。
(4)测试模型:使用一些测试数据对编译好的模型进行测试,以检验其性能和准确性。
3.KHADAS VIM3 的编译结果
经过上述编译过程,可以得到一个可执行的 KHADAS VIM3 模型文件。
这个模型文件可以在不同的平台上运行,协助用户进行知识类写作。
4.KHADAS VIM3 的编译意义
KHADAS VIM3 的编译意义在于,它可以将预训练好的模型应用到实际的知识类写作中,提高写作效率和质量。
【IT专家】Spark修炼之道(基础篇)——Linux大数据开发基础:第五节:vi、vim编辑器(一)
本文由我司收集整编,推荐下载,如有疑问,请与我司联系Spark修炼之道(基础篇)——Linux大数据开发基础:第五节:vi、vim编辑器(一)2015/11/14 0 本节主要内容vim编辑器的三种模式移动光标输入模式修改文本作者:周志湖微信号:zhouzhihubeyond网名:摇摆少年梦 1. vi编辑器的三种模式学会使用vi编辑器是学习linux系统的必备技术之一,因为一般的linux服务器是没有GUI界面的,linux运维及开发人员基本上都是通过命令行的方式进行文本编辑或程序编写的。
vi编辑器是linux内置的文本编辑器,几乎所有的类unix系统中都内置了vi编辑器,而其它编辑器则不一定,另外很多软件会调用vi编辑进行内容编写,例如crontab定时任务。
较之于其它编辑器或GUI 编辑器,vi编辑速度是最快的。
vim编辑器可以看作vi的高级版本,它实现了用颜色来进行特殊信息的显示,例如在进行java程序开发是,它会对某些关键字用颜色显示。
vi编辑器: vim编辑器: vi编辑器有三种模式,分别是一般模式、编辑模式及命令行模式1 一般模式,采用vi命令直接进入一般模式例如 code > /code ul >在一般模式下,可以进行上下左右的光标移动、删除字符、行,还可以进行复制和粘贴操作 2 编辑模式,在一般模式中按”i,l,o,O,a,A,r,R”等做任意一个字符后,将进入编辑模式,下面给出的是在一般模式下输入”i”后,得到的编辑模式窗口。
窗口最底下会显示– INSERT–,此时可以对文本内容进行编辑模式,注意因为机器上已经安装了vim,因此显示时有颜色。
3 命令行模式在编辑模式中,按”ESC”鍵可以回到一般模式。
在一般模式中,输入”:,/,?”做任意一个字符,光标将移动到窗口底部,此时可以保存编辑好的文件或离开vi编辑器等,下图给出的是输入”:”之后得到的命令行模式窗口 2. 移动光标1 单个字符移动在一般模式化中,采用Up Arrow, Down Arrow键可。
利器系列之 编辑利器 vim 之插件配置 时习之
利器系列之——编辑利器Vim 之插件配置时习之在每个程序员的心里都有一款完美的IDE,只不过不同的程序员心中对于完美的定义并不相同,所以从来都没有一款大家都喜欢的IDE 存在,它们总是少一些你想要的功能,或者是多了一些你不想要的功能。
解决这种问题的方法之一是配置,这也是为什么备受大家推崇的各种编辑器或者IDE 都含有大量的可配置选项,通常来说我们可以通过配置选项把编辑器现有的功能配置成我们最顺手的状态。
但是如果编辑器没有你想要的功能,配置是无济于事的。
增强编辑器的功能,靠的是这篇文章中要介绍的——插件。
插件的存在是Vim 和Emacs 这类的编辑器能够备受推崇的原因之一,因为它们让不可能变成可能。
其实最理想的状态应该是像Shougo 这类的大神一样,不爽了自己写一个。
可惜的是大部分人没有这个能力,我们通常是用大神写好的插件。
这篇文章介绍的是如何使用Vim 的插件,而不是如何编写自己的插件。
如何找到自己想要的插件Vim 的插件很多,所以如何找到一个合适的Vim 插件也是一件比较头疼的事情。
最简单的做法是使用别人的Vim 配置文件,比如我最初使用的配置文件就是k-vim。
这一类的配置文件通常是作者多年以来使用Vim 过程中积累的经验,他们选用的插件也通常是一些最好用的插件。
另外一种方式就是去介绍Vim 插件的网站上查找排名最前的那些插件。
我最喜欢的Vim 插件网站是vimawesome。
这个网站上的每个插件都会有评分,一般来说最靠前的都是大家用的最顺手的。
当然你也可以去github 上搜索相关的插件,然后看看哪一个插件的star 最多。
插件的安装通常我们会使用大量的插件,这些插件的管理(安装、删除、升级)非常不便。
为了解决这个难题,我们需要一个管理插件的插件,这一类型的插件很多,用的比较多的有:-Vundle-Neobundle-Pathogen-VimPlug我一直都是使用Vundle,它可以非常方便的管理插件。
vim列编辑模式
vim列编辑模式vim 列编辑模式标签: vim 视窗模式列编辑模式vim 列编辑模式例⼦:给列批量添加前缀、后缀、修改字段vim 列编辑模式vim 有三种编辑模式,命令模式、输⼊模式、视窗模式,我们常⽤的是前两种模式,但是视窗模式还是⾮常不错的,进⼊ vim 编辑器,模式是命令模式,可以通过i、a等进⼊输⼊模式,也可以通过v、c+v进⼊视窗模式。
视窗模式可以让我们选择⼀块区域,这个区域好⽐是⼀个视图窗⼝,可以进⾏批量编辑。
例⼦1:给列批量添加前缀、后缀、修改我们经常会有这样的⼀个场景,需要对 excel、csv 的某⼀列进⾏编辑,例如添加⼀些前缀、后缀或者修改,⼀般在维护数据或者批量⽣成⼀些 sql 语句⾮常常见。
那么我们来看个例⼦:我们需要⽣成⼀组测试数据,这组数据需要添加 sql insert 前缀,我们才能批量倒⼊到 DB 中去。
我们简单来⽣成⼀组测试数据:for ((i=1;i<=10000;i++))do echo $RANDOM >> ids.csvdo我们需要将这⼀组id添加到DB中,vim 编辑这个⽂件。
vim ids.csv默认打开是进去命令模式,此时我们需要在列的前后添加sql代码。
c+v进去可视化模式。
然后GG跳到最后⼀⾏,然后L向右选择当前列。
shit+i切换到列前输⼊。
然后输⼊sql insert 语句。
insert into tb_ids(id) values (然后通过esc退出视图模式,会⾃动⽣成所有⾏的前缀。
我们继续添加列后缀部分。
和之前的编辑模式还是⼀致的,只是全部选中之后使⽤shit+a切⼊到列后端。
输⼊ sql insert 结尾部分。
);当然这⾥⾯会有⼀些问题需要注意,列需要是有规则的,如果没有规则的列需要先排序好,然后分批处理。
如果是整⾏模式,可以直接v模式进⼊整⾏编辑模式。
vim的功能还是很丰富的,这⾥只是分享⼀个很简单的例⼦。
作者:王清培(趣头条 Tech Leader)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据和区块链的关系汇总_光环大数据培训
区块链和大数据都是热门的话题,很多人把他们放在一起讨论,希望能碰撞出更多的热点。
大数据发展早于区块链,目前已经成为一个庞大的产业。
而区块链处在产业的初期,很多技术和商业模式还在探索之中。
鉴于大数据产业相对比较成熟,我们以大数据为出发点,来看一下区块链技术如何与大数据产业的各个环节进行对接。
大数据核心产业链条可以大致分为以下三部分:
产品部分:包括大数据基础软件、大数据应用软件等大数据软件产品相关产业。
数据部分:包括数据源(数据采集、数据提供)、数据流通(数据交易、数据共享)等与数据直接相关的产业。
服务部分:包括大数据基础设施服务(数据存储、数据传输、数据清洗、数据脱敏等)、大数据分析服务以及大数据应用服务等服务类相关产业。
01 产品部分
软件产品和区块链的结合,其结合点应该是在技术方面。
大数据技术与区块链技术中有相似点:都是分布式架构。
然而他们又有很明显的不同点:大数据技术中使用分布式技术是为了计算资源——利用多台机器的计算资源,将单机无法处理完成的任务,分配给多台
计算机完成,每台计算机通过处理不同的任务,整合多台计算资源,形成强大的数据处理能力。
而区块链使用分布式技术是为了让多个主体能够相互信任——每个主体通过自己控制的计算机参与到整个区块链的运行中,每台计算机运行的任务基本相同,整个区块链通过大量重复冗余的计算,实现多主体之间的相互信任。
从技术角度看,大数据技术用信任换取了计算资源,而区块链技术用计算资源换取了信任。
由于两者之间的这种区别,在技术上,大数据和区块链很难找到合适的碰撞点。
02 数据部分
在数据部分的多种业态中,区块链都能找到其用武之地。
数据源:如果数据是由单个主体所采集收集的,不涉及到信任问题,引入区块链的意义不大。
但如果涉及到多个主体进行数据采集、提供数据的情况,区块链就可以发挥它的作用了。
为了解决多主体之间的信任问题,每个主体都将自己采集到的数据广播给所有使用方,并将数据的Hash值保存在区块链上。
区块链上的每个主体都可以根据区块链上的Hash值,验证自己收到的完整数据是否被篡改。
区块链的可追溯性和防抵赖性,让多方提供数据时更加可信。
同时,这种方式也有助于维护大数据的完整性。
而在数据流通行业,区块链能起到的作用就更大了。
在大数据流通行业中,大数据本身就是一种数字资产。
数字资产的交易,可以通过区块链实现。
并且,在区块链上实现的去中心化大数据交易,可以减少原始数据的接触者。
在一
个去中心化的交易平台上,只有买卖双方可以接触到原始数据;而在中心化的交易平台上,作为交易中心的数据中介通常也会接触到原始数据,这就增加了数据泄露、资产损失的风险。
03 服务部分
在大数据服务中,服务能力作为一种数字资产,与数据交易中的数据即为资产的理念是一样的,都可以进行交易。
而区块链在这种数字资产的交易中,就能够发挥重要的作用。
同时,近期又有很多新的技术在不断改变着区块链,例如同态加密技术。
同态加密是区块链与大数据服务结合的一个重要技术点,同态加密能够真正实现将数据的服务能力转化为数字资产,同时又不会有服务中原始数据被大数据服务商拷贝的风险。
综上所述,区块链与大数据还是有很多碰撞点的。
本文只是分析了用区块链技术去碰大数据产业的情况,而用大数据技术碰区块链产业,也同样有大量的热点,我们在今后的文章中会讨论到这个问题。
为什么大家选择光环大数据!
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。
讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。
通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。
【报名方式、详情咨询】
光环大数据官方网站报名:/ 手机报名链接:http:// /mobile/。