[{"data":1,"prerenderedAt":1349},["ShallowReactive",2],{"post-dotfile_config\u002Fmain":3},{"id":4,"title":5,"body":6,"cover":1338,"date":1339,"description":24,"draft":1340,"extension":1341,"meta":1342,"navigation":211,"path":1343,"seo":1344,"stem":1345,"summary":12,"tags":1346,"__hash__":1348},"posts\u002Fposts\u002Fdotfile_config\u002Fmain.md","Linux Server Configuration",{"type":7,"value":8,"toc":1332},"minimark",[9,13,18,93,97,101,165,168,239,242,434,437,921,929,933,936,1031,1034,1297,1300,1306,1310,1328],[10,11,12],"h1",{"id":12},"个人服务器配置流程",[14,15,17],"h2",{"id":16},"_1-添加用户并赋予-sudo-权限","1. 添加用户并赋予 sudo 权限",[19,20,25],"pre",{"className":21,"code":22,"language":23,"meta":24,"style":24},"language-bash shiki shiki-themes github-dark github-light","adduser --disabled-password \u003Cyour_username>\nusermod -aG sudo \u003Cyour_username>\nsu - \u003Cyour_username>\n","bash","",[26,27,28,56,76],"code",{"__ignoreMap":24},[29,30,33,37,41,45,49,53],"span",{"class":31,"line":32},"line",1,[29,34,36],{"class":35},"sqoU-","adduser",[29,38,40],{"class":39},"sTU5a"," --disabled-password",[29,42,44],{"class":43},"spKkM"," \u003C",[29,46,48],{"class":47},"skb7c","your_usernam",[29,50,52],{"class":51},"shWlK","e",[29,54,55],{"class":43},">\n",[29,57,59,62,65,68,70,72,74],{"class":31,"line":58},2,[29,60,61],{"class":35},"usermod",[29,63,64],{"class":39}," -aG",[29,66,67],{"class":47}," sudo",[29,69,44],{"class":43},[29,71,48],{"class":47},[29,73,52],{"class":51},[29,75,55],{"class":43},[29,77,79,82,85,87,89,91],{"class":31,"line":78},3,[29,80,81],{"class":35},"su",[29,83,84],{"class":47}," -",[29,86,44],{"class":43},[29,88,48],{"class":47},[29,90,52],{"class":51},[29,92,55],{"class":43},[94,95,96],"p",{},"然后添加.ssh\u002Fauthorized_keys文件。",[14,98,100],{"id":99},"_2-安装-zshoh-my-zsh","2. 安装 zsh、oh-my-zsh",[19,102,104],{"className":21,"code":103,"language":23,"meta":24,"style":24},"sudo apt install -y zsh\nsudo chsh -s $(which zsh) $USER\nsh -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fohmyzsh\u002Fohmyzsh\u002Fmaster\u002Ftools\u002Finstall.sh)\"\n",[26,105,106,123,145],{"__ignoreMap":24},[29,107,108,111,114,117,120],{"class":31,"line":32},[29,109,110],{"class":35},"sudo",[29,112,113],{"class":47}," apt",[29,115,116],{"class":47}," install",[29,118,119],{"class":39}," -y",[29,121,122],{"class":47}," zsh\n",[29,124,125,127,130,133,136,139,142],{"class":31,"line":58},[29,126,110],{"class":35},[29,128,129],{"class":47}," chsh",[29,131,132],{"class":39}," -s",[29,134,135],{"class":51}," $(",[29,137,138],{"class":39},"which",[29,140,141],{"class":47}," zsh",[29,143,144],{"class":51},") $USER\n",[29,146,147,150,153,156,159,162],{"class":31,"line":78},[29,148,149],{"class":35},"sh",[29,151,152],{"class":39}," -c",[29,154,155],{"class":47}," \"$(",[29,157,158],{"class":35},"curl",[29,160,161],{"class":39}," -fsSL",[29,163,164],{"class":47}," https:\u002F\u002Fraw.githubusercontent.com\u002Fohmyzsh\u002Fohmyzsh\u002Fmaster\u002Ftools\u002Finstall.sh)\"\n",[94,166,167],{},"安装oh-my-zsh插件（命令高亮，自动补全）：",[19,169,171],{"className":21,"code":170,"language":23,"meta":24,"style":24},"git clone https:\u002F\u002Fgithub.com\u002Fzsh-users\u002Fzsh-syntax-highlighting.git ${ZSH_CUSTOM:-~\u002F.oh-my-zsh\u002Fcustom}\u002Fplugins\u002Fzsh-syntax-highlighting\n\ngit clone https:\u002F\u002Fgithub.com\u002Fzsh-users\u002Fzsh-autosuggestions ${ZSH_CUSTOM:-~\u002F.oh-my-zsh\u002Fcustom}\u002Fplugins\u002Fzsh-autosuggestions\n",[26,172,173,207,213],{"__ignoreMap":24},[29,174,175,178,181,184,187,190,193,196,199,201,204],{"class":31,"line":32},[29,176,177],{"class":35},"git",[29,179,180],{"class":47}," clone",[29,182,183],{"class":47}," https:\u002F\u002Fgithub.com\u002Fzsh-users\u002Fzsh-syntax-highlighting.git",[29,185,186],{"class":51}," ${ZSH_CUSTOM",[29,188,189],{"class":43},":-",[29,191,192],{"class":51},"~",[29,194,195],{"class":43},"\u002F",[29,197,198],{"class":51},".oh-my-zsh",[29,200,195],{"class":43},[29,202,203],{"class":51},"custom}",[29,205,206],{"class":47},"\u002Fplugins\u002Fzsh-syntax-highlighting\n",[29,208,209],{"class":31,"line":58},[29,210,212],{"emptyLinePlaceholder":211},true,"\n",[29,214,215,217,219,222,224,226,228,230,232,234,236],{"class":31,"line":78},[29,216,177],{"class":35},[29,218,180],{"class":47},[29,220,221],{"class":47}," https:\u002F\u002Fgithub.com\u002Fzsh-users\u002Fzsh-autosuggestions",[29,223,186],{"class":51},[29,225,189],{"class":43},[29,227,192],{"class":51},[29,229,195],{"class":43},[29,231,198],{"class":51},[29,233,195],{"class":43},[29,235,203],{"class":51},[29,237,238],{"class":47},"\u002Fplugins\u002Fzsh-autosuggestions\n",[94,240,241],{},"配置~\u002F.zshrc：",[19,243,245],{"className":21,"code":244,"language":23,"meta":24,"style":24},"export ZSH=\"$HOME\u002F.oh-my-zsh\"\n\nZSH_THEME=\"AEsir\"\nexport VIRTUAL_ENV_DISABLE_PROMPT=1\nplugins=(git web-search jsontools z zsh-autosuggestions zsh-syntax-highlighting)\n\nsource $ZSH\u002Foh-my-zsh.sh\nunset PROMPT_DIRTRIM\n\nalias zshconfig=\"mate ~\u002F.zshrc\"\nalias ohmyzsh=\"mate ~\u002F.oh-my-zsh\"\n\n# some more ls aliases\nalias ll='ls -alF'\nalias la='ls -A'\nalias l='ls -CF'\n",[26,246,247,267,271,281,294,325,330,342,351,356,370,383,388,395,408,421],{"__ignoreMap":24},[29,248,249,252,255,258,261,264],{"class":31,"line":32},[29,250,251],{"class":43},"export",[29,253,254],{"class":51}," ZSH",[29,256,257],{"class":43},"=",[29,259,260],{"class":47},"\"",[29,262,263],{"class":51},"$HOME",[29,265,266],{"class":47},"\u002F.oh-my-zsh\"\n",[29,268,269],{"class":31,"line":58},[29,270,212],{"emptyLinePlaceholder":211},[29,272,273,276,278],{"class":31,"line":78},[29,274,275],{"class":51},"ZSH_THEME",[29,277,257],{"class":43},[29,279,280],{"class":47},"\"AEsir\"\n",[29,282,284,286,289,291],{"class":31,"line":283},4,[29,285,251],{"class":43},[29,287,288],{"class":51}," VIRTUAL_ENV_DISABLE_PROMPT",[29,290,257],{"class":43},[29,292,293],{"class":39},"1\n",[29,295,297,300,302,305,307,310,313,316,319,322],{"class":31,"line":296},5,[29,298,299],{"class":51},"plugins",[29,301,257],{"class":43},[29,303,304],{"class":51},"(",[29,306,177],{"class":47},[29,308,309],{"class":47}," web-search",[29,311,312],{"class":47}," jsontools",[29,314,315],{"class":47}," z",[29,317,318],{"class":47}," zsh-autosuggestions",[29,320,321],{"class":47}," zsh-syntax-highlighting",[29,323,324],{"class":51},")\n",[29,326,328],{"class":31,"line":327},6,[29,329,212],{"emptyLinePlaceholder":211},[29,331,333,336,339],{"class":31,"line":332},7,[29,334,335],{"class":39},"source",[29,337,338],{"class":51}," $ZSH",[29,340,341],{"class":47},"\u002Foh-my-zsh.sh\n",[29,343,345,348],{"class":31,"line":344},8,[29,346,347],{"class":39},"unset",[29,349,350],{"class":47}," PROMPT_DIRTRIM\n",[29,352,354],{"class":31,"line":353},9,[29,355,212],{"emptyLinePlaceholder":211},[29,357,359,362,365,367],{"class":31,"line":358},10,[29,360,361],{"class":43},"alias",[29,363,364],{"class":51}," zshconfig",[29,366,257],{"class":43},[29,368,369],{"class":47},"\"mate ~\u002F.zshrc\"\n",[29,371,373,375,378,380],{"class":31,"line":372},11,[29,374,361],{"class":43},[29,376,377],{"class":51}," ohmyzsh",[29,379,257],{"class":43},[29,381,382],{"class":47},"\"mate ~\u002F.oh-my-zsh\"\n",[29,384,386],{"class":31,"line":385},12,[29,387,212],{"emptyLinePlaceholder":211},[29,389,391],{"class":31,"line":390},13,[29,392,394],{"class":393},"si27w","# some more ls aliases\n",[29,396,398,400,403,405],{"class":31,"line":397},14,[29,399,361],{"class":43},[29,401,402],{"class":51}," ll",[29,404,257],{"class":43},[29,406,407],{"class":47},"'ls -alF'\n",[29,409,411,413,416,418],{"class":31,"line":410},15,[29,412,361],{"class":43},[29,414,415],{"class":51}," la",[29,417,257],{"class":43},[29,419,420],{"class":47},"'ls -A'\n",[29,422,424,426,429,431],{"class":31,"line":423},16,[29,425,361],{"class":43},[29,427,428],{"class":51}," l",[29,430,257],{"class":43},[29,432,433],{"class":47},"'ls -CF'\n",[94,435,436],{},"个人主题：",[19,438,440],{"className":21,"code":439,"language":23,"meta":24,"style":24},"short_path() {\n  local p=\"${PWD\u002F#$HOME\u002F~}\"          # ~\u002F 开头的友好路径\n  local -a segs=(\"${(s:\u002F:)p}\")       # 按 \u002F 拆分；zsh 支持负索引\n  local count=${#segs[@]}\n\n  # 只有 ~ 或 \u002F 的场合\n  (( count \u003C= 2 )) && print -r -- \"$p\" && return\n\n  # 从 ~ 开头：始终保留 ~ 与最后两段\n  if [[ ${segs[1]} == \"~\" || ${segs[1]} == \"\" && ${segs[2]} == \"~\" ]]; then\n    print -r -- \"…\u002F${segs[-2]}\u002F${segs[-1]}\"\n  else\n    # 普通绝对路径：用省略号开头\n    print -r -- \"…\u002F${segs[-2]}\u002F${segs[-1]}\"\n  fi\n}\n\n\nenv_prompt() {\n  if [[ -n \"$CONDA_DEFAULT_ENV\" ]]; then\n    print -r -- \"%{$fg[cyan]%}(${CONDA_DEFAULT_ENV})%{$reset_color%}\"\n  elif [[ -n \"$VIRTUAL_ENV\" ]]; then\n    print -r -- \"%{$fg[cyan]%}(${CONDA_DEFAULT_ENV})%{$reset_color%}\"\n  fi\n}\n\nPROMPT=$'%{$fg[red]%}┌[%{$fg_bold[white]%}$(env_prompt)%n%{$reset_color%}%{$fg[red]%}@%{$fg_bold[white]%}%m%{$reset_color%}%{$fg[red]%}] [%{$fg_bold[white]%}\u002Fdev\u002F%y%{$reset_color%}%{$fg[red]%}] %{$(git_prompt_info)%}%(?,,%{$fg[red]%}[%{$fg_bold[white]%}%?%{$reset_color%}%{$fg[red]%}])\n%{$fg[red]%}└[%{$fg_bold[white]%}$(short_path)%{$reset_color%}%{$fg[red]%}]>%{$reset_color%} '\nPS2=$' %{$fg[red]%}|>%{$reset_color%} '\n\nZSH_THEME_GIT_PROMPT_PREFIX=\"%{$fg[red]%}[%{$fg_bold[white]%}\"\nZSH_THEME_GIT_PROMPT_SUFFIX=\"%{$reset_color%}%{$fg[red]%}] \"\nZSH_THEME_GIT_PROMPT_DIRTY=\" %{$fg[red]%}⚡%{$reset_color%}\"\n",[26,441,442,450,479,516,540,544,549,586,590,595,636,659,664,669,687,692,697,702,707,715,737,767,788,811,816,821,826,837,843,854,859,881,901],{"__ignoreMap":24},[29,443,444,447],{"class":31,"line":32},[29,445,446],{"class":35},"short_path",[29,448,449],{"class":51},"() {\n",[29,451,452,455,458,460,463,466,469,471,473,476],{"class":31,"line":58},[29,453,454],{"class":43},"  local",[29,456,457],{"class":51}," p",[29,459,257],{"class":43},[29,461,462],{"class":47},"\"${",[29,464,465],{"class":51},"PWD",[29,467,468],{"class":43},"\u002F#",[29,470,263],{"class":51},[29,472,195],{"class":43},[29,474,475],{"class":47},"~}\"",[29,477,478],{"class":393},"          # ~\u002F 开头的友好路径\n",[29,480,481,483,486,489,491,493,496,499,502,505,507,510,513],{"class":31,"line":78},[29,482,454],{"class":43},[29,484,485],{"class":39}," -a",[29,487,488],{"class":51}," segs",[29,490,257],{"class":43},[29,492,304],{"class":51},[29,494,495],{"class":47},"\"${(",[29,497,498],{"class":51},"s",[29,500,501],{"class":43},":\u002F:",[29,503,504],{"class":47},")",[29,506,94],{"class":51},[29,508,509],{"class":47},"}\"",[29,511,512],{"class":51},")       ",[29,514,515],{"class":393},"# 按 \u002F 拆分；zsh 支持负索引\n",[29,517,518,520,523,525,528,531,534,537],{"class":31,"line":283},[29,519,454],{"class":43},[29,521,522],{"class":51}," count",[29,524,257],{"class":43},[29,526,527],{"class":51},"${",[29,529,530],{"class":43},"#",[29,532,533],{"class":51},"segs[",[29,535,536],{"class":43},"@",[29,538,539],{"class":51},"]}\n",[29,541,542],{"class":31,"line":296},[29,543,212],{"emptyLinePlaceholder":211},[29,545,546],{"class":31,"line":327},[29,547,548],{"class":393},"  # 只有 ~ 或 \u002F 的场合\n",[29,550,551,554,557,560,563,566,569,572,575,578,580,583],{"class":31,"line":332},[29,552,553],{"class":51},"  (( count ",[29,555,556],{"class":43},"\u003C=",[29,558,559],{"class":39}," 2",[29,561,562],{"class":51}," )) && ",[29,564,565],{"class":39},"print",[29,567,568],{"class":39}," -r",[29,570,571],{"class":39}," --",[29,573,574],{"class":47}," \"",[29,576,577],{"class":51},"$p",[29,579,260],{"class":47},[29,581,582],{"class":51}," && ",[29,584,585],{"class":43},"return\n",[29,587,588],{"class":31,"line":344},[29,589,212],{"emptyLinePlaceholder":211},[29,591,592],{"class":31,"line":353},[29,593,594],{"class":393},"  # 从 ~ 开头：始终保留 ~ 与最后两段\n",[29,596,597,600,603,606,609,612,615,617,620,623,626,628,630,633],{"class":31,"line":358},[29,598,599],{"class":43},"  if",[29,601,602],{"class":51}," [[ ${segs[1]} ",[29,604,605],{"class":43},"==",[29,607,608],{"class":47}," \"~\"",[29,610,611],{"class":43}," ||",[29,613,614],{"class":51}," ${segs[1]} ",[29,616,605],{"class":43},[29,618,619],{"class":47}," \"\"",[29,621,622],{"class":43}," &&",[29,624,625],{"class":51}," ${segs[2]} ",[29,627,605],{"class":43},[29,629,608],{"class":47},[29,631,632],{"class":51}," ]]; ",[29,634,635],{"class":43},"then\n",[29,637,638,641,643,645,648,651,654,656],{"class":31,"line":372},[29,639,640],{"class":39},"    print",[29,642,568],{"class":39},[29,644,571],{"class":39},[29,646,647],{"class":47}," \"…\u002F${",[29,649,650],{"class":51},"segs",[29,652,653],{"class":47},"[-2]}\u002F${",[29,655,650],{"class":51},[29,657,658],{"class":47},"[-1]}\"\n",[29,660,661],{"class":31,"line":385},[29,662,663],{"class":43},"  else\n",[29,665,666],{"class":31,"line":390},[29,667,668],{"class":393},"    # 普通绝对路径：用省略号开头\n",[29,670,671,673,675,677,679,681,683,685],{"class":31,"line":397},[29,672,640],{"class":39},[29,674,568],{"class":39},[29,676,571],{"class":39},[29,678,647],{"class":47},[29,680,650],{"class":51},[29,682,653],{"class":47},[29,684,650],{"class":51},[29,686,658],{"class":47},[29,688,689],{"class":31,"line":410},[29,690,691],{"class":43},"  fi\n",[29,693,694],{"class":31,"line":423},[29,695,696],{"class":51},"}\n",[29,698,700],{"class":31,"line":699},17,[29,701,212],{"emptyLinePlaceholder":211},[29,703,705],{"class":31,"line":704},18,[29,706,212],{"emptyLinePlaceholder":211},[29,708,710,713],{"class":31,"line":709},19,[29,711,712],{"class":35},"env_prompt",[29,714,449],{"class":51},[29,716,718,720,723,726,728,731,733,735],{"class":31,"line":717},20,[29,719,599],{"class":43},[29,721,722],{"class":51}," [[ ",[29,724,725],{"class":43},"-n",[29,727,574],{"class":47},[29,729,730],{"class":51},"$CONDA_DEFAULT_ENV",[29,732,260],{"class":47},[29,734,632],{"class":51},[29,736,635],{"class":43},[29,738,740,742,744,746,749,752,755,758,761,764],{"class":31,"line":739},21,[29,741,640],{"class":39},[29,743,568],{"class":39},[29,745,571],{"class":39},[29,747,748],{"class":47}," \"%{",[29,750,751],{"class":51},"$fg",[29,753,754],{"class":47},"[cyan]%}(${",[29,756,757],{"class":51},"CONDA_DEFAULT_ENV",[29,759,760],{"class":47},"})%{",[29,762,763],{"class":51},"$reset_color",[29,765,766],{"class":47},"%}\"\n",[29,768,770,773,775,777,779,782,784,786],{"class":31,"line":769},22,[29,771,772],{"class":43},"  elif",[29,774,722],{"class":51},[29,776,725],{"class":43},[29,778,574],{"class":47},[29,780,781],{"class":51},"$VIRTUAL_ENV",[29,783,260],{"class":47},[29,785,632],{"class":51},[29,787,635],{"class":43},[29,789,791,793,795,797,799,801,803,805,807,809],{"class":31,"line":790},23,[29,792,640],{"class":39},[29,794,568],{"class":39},[29,796,571],{"class":39},[29,798,748],{"class":47},[29,800,751],{"class":51},[29,802,754],{"class":47},[29,804,757],{"class":51},[29,806,760],{"class":47},[29,808,763],{"class":51},[29,810,766],{"class":47},[29,812,814],{"class":31,"line":813},24,[29,815,691],{"class":43},[29,817,819],{"class":31,"line":818},25,[29,820,696],{"class":51},[29,822,824],{"class":31,"line":823},26,[29,825,212],{"emptyLinePlaceholder":211},[29,827,829,832,834],{"class":31,"line":828},27,[29,830,831],{"class":51},"PROMPT",[29,833,257],{"class":43},[29,835,836],{"class":47},"$'%{$fg[red]%}┌[%{$fg_bold[white]%}$(env_prompt)%n%{$reset_color%}%{$fg[red]%}@%{$fg_bold[white]%}%m%{$reset_color%}%{$fg[red]%}] [%{$fg_bold[white]%}\u002Fdev\u002F%y%{$reset_color%}%{$fg[red]%}] %{$(git_prompt_info)%}%(?,,%{$fg[red]%}[%{$fg_bold[white]%}%?%{$reset_color%}%{$fg[red]%}])\n",[29,838,840],{"class":31,"line":839},28,[29,841,842],{"class":47},"%{$fg[red]%}└[%{$fg_bold[white]%}$(short_path)%{$reset_color%}%{$fg[red]%}]>%{$reset_color%} '\n",[29,844,846,849,851],{"class":31,"line":845},29,[29,847,848],{"class":51},"PS2",[29,850,257],{"class":43},[29,852,853],{"class":47},"$' %{$fg[red]%}|>%{$reset_color%} '\n",[29,855,857],{"class":31,"line":856},30,[29,858,212],{"emptyLinePlaceholder":211},[29,860,862,865,867,870,872,875,878],{"class":31,"line":861},31,[29,863,864],{"class":51},"ZSH_THEME_GIT_PROMPT_PREFIX",[29,866,257],{"class":43},[29,868,869],{"class":47},"\"%{",[29,871,751],{"class":51},[29,873,874],{"class":47},"[red]%}[%{",[29,876,877],{"class":51},"$fg_bold",[29,879,880],{"class":47},"[white]%}\"\n",[29,882,884,887,889,891,893,896,898],{"class":31,"line":883},32,[29,885,886],{"class":51},"ZSH_THEME_GIT_PROMPT_SUFFIX",[29,888,257],{"class":43},[29,890,869],{"class":47},[29,892,763],{"class":51},[29,894,895],{"class":47},"%}%{",[29,897,751],{"class":51},[29,899,900],{"class":47},"[red]%}] \"\n",[29,902,904,907,909,912,914,917,919],{"class":31,"line":903},33,[29,905,906],{"class":51},"ZSH_THEME_GIT_PROMPT_DIRTY",[29,908,257],{"class":43},[29,910,911],{"class":47},"\" %{",[29,913,751],{"class":51},[29,915,916],{"class":47},"[red]%}⚡%{",[29,918,763],{"class":51},[29,920,766],{"class":47},[94,922,923,924],{},"写入到~\u002F.oh-my-zsh\u002Fthemes\u002FAEsir.zsh-theme，主要优化了路径显示：\n",[925,926],"img",{"alt":927,"src":928},"AEsir.zsh-theme 预览","\u002Fimages\u002Fposts\u002Fdotfile_config\u002FAEsir_theme.png",[14,930,932],{"id":931},"_3-配置vim","3. 配置vim",[94,934,935],{},"安装vim以及插件管理器、插件:",[19,937,939],{"className":21,"code":938,"language":23,"meta":24,"style":24},"sudo apt install -y vim\n\nmkdir -p ~\u002F.vim\u002Fplugged && cd ~\u002F.vim\u002Fplugged\ngit clone git:\u002F\u002Fgithub.com\u002Fjiangmiao\u002Fauto-pairs.git \ngit clone https:\u002F\u002Fgithub.com\u002Fvim-airline\u002Fvim-airline \ngit clone https:\u002F\u002Fgithub.com\u002Fpreservim\u002Fnerdtree.git \n\ncurl -fLo ~\u002F.vim\u002Fautoload\u002Fplug.vim --create-dirs https:\u002F\u002Fraw.githubusercontent.com\u002Fjunegunn\u002Fvim-plug\u002Fmaster\u002Fplug.vim\n\n",[26,940,941,954,958,977,989,1000,1011,1015],{"__ignoreMap":24},[29,942,943,945,947,949,951],{"class":31,"line":32},[29,944,110],{"class":35},[29,946,113],{"class":47},[29,948,116],{"class":47},[29,950,119],{"class":39},[29,952,953],{"class":47}," vim\n",[29,955,956],{"class":31,"line":58},[29,957,212],{"emptyLinePlaceholder":211},[29,959,960,963,966,969,971,974],{"class":31,"line":78},[29,961,962],{"class":35},"mkdir",[29,964,965],{"class":39}," -p",[29,967,968],{"class":47}," ~\u002F.vim\u002Fplugged",[29,970,582],{"class":51},[29,972,973],{"class":39},"cd",[29,975,976],{"class":47}," ~\u002F.vim\u002Fplugged\n",[29,978,979,981,983,986],{"class":31,"line":283},[29,980,177],{"class":35},[29,982,180],{"class":47},[29,984,985],{"class":47}," git:\u002F\u002Fgithub.com\u002Fjiangmiao\u002Fauto-pairs.git",[29,987,988],{"class":51}," \n",[29,990,991,993,995,998],{"class":31,"line":296},[29,992,177],{"class":35},[29,994,180],{"class":47},[29,996,997],{"class":47}," https:\u002F\u002Fgithub.com\u002Fvim-airline\u002Fvim-airline",[29,999,988],{"class":51},[29,1001,1002,1004,1006,1009],{"class":31,"line":327},[29,1003,177],{"class":35},[29,1005,180],{"class":47},[29,1007,1008],{"class":47}," https:\u002F\u002Fgithub.com\u002Fpreservim\u002Fnerdtree.git",[29,1010,988],{"class":51},[29,1012,1013],{"class":31,"line":332},[29,1014,212],{"emptyLinePlaceholder":211},[29,1016,1017,1019,1022,1025,1028],{"class":31,"line":344},[29,1018,158],{"class":35},[29,1020,1021],{"class":39}," -fLo",[29,1023,1024],{"class":47}," ~\u002F.vim\u002Fautoload\u002Fplug.vim",[29,1026,1027],{"class":39}," --create-dirs",[29,1029,1030],{"class":47}," https:\u002F\u002Fraw.githubusercontent.com\u002Fjunegunn\u002Fvim-plug\u002Fmaster\u002Fplug.vim\n",[94,1032,1033],{},"配置 ~\u002F.vimrc",[19,1035,1037],{"className":21,"code":1036,"language":23,"meta":24,"style":24},"syntax on\n\n\" 设置编码为utf-8\nset encoding=utf-8\n\n\" 设置tab宽度为4个空格\nset tabstop=4\nset shiftwidth=4\nset expandtab\n\n\" 自动缩进\nset autoindent\n\n\" 显示行号和列号\nset number\nset ruler\n\n\" 显示当前行\nset cursorline\n\n\" 设置行号颜色为灰色\nhighlight LineNr ctermfg=gray\n\n\" 让vim可以用鼠标滚轮\nset mouse=a\n\ncall plug#begin('~\u002F.vim\u002Fplugged')\n\" Shorthand notation for plugin\nPlug 'jiangmiao\u002Fauto-pairs'\nPlug 'vim-airline\u002Fvim-airline'\nPlug 'preservim\u002Fnerdtree'\ncall plug#end()\n\nset laststatus=2  \"永远显示状态栏\nlet g:airline_powerline_fonts = 1  \" 支持 powerline 字体\nlet g:airline#extensions#tabline#enabled = 1 \" 显示窗口tab和buffer\n",[26,1038,1039,1047,1051,1056,1061,1065,1072,1083,1092,1099,1103,1108,1113,1117,1124,1131,1138,1142,1147,1152,1156,1163,1174,1178,1183,1188,1192,1197,1213,1221,1228,1235,1246,1250,1264,1279],{"__ignoreMap":24},[29,1040,1041,1044],{"class":31,"line":32},[29,1042,1043],{"class":35},"syntax",[29,1045,1046],{"class":47}," on\n",[29,1048,1049],{"class":31,"line":58},[29,1050,212],{"emptyLinePlaceholder":211},[29,1052,1053],{"class":31,"line":78},[29,1054,1055],{"class":35},"\" 设置编码为utf-8\n",[29,1057,1058],{"class":31,"line":283},[29,1059,1060],{"class":35},"set encoding=utf-8\n",[29,1062,1063],{"class":31,"line":296},[29,1064,212],{"emptyLinePlaceholder":211},[29,1066,1067,1069],{"class":31,"line":327},[29,1068,260],{"class":35},[29,1070,1071],{"class":47}," 设置tab宽度为4个空格\n",[29,1073,1074,1077,1080],{"class":31,"line":332},[29,1075,1076],{"class":39},"set",[29,1078,1079],{"class":47}," tabstop=",[29,1081,1082],{"class":39},"4\n",[29,1084,1085,1087,1090],{"class":31,"line":344},[29,1086,1076],{"class":39},[29,1088,1089],{"class":47}," shiftwidth=",[29,1091,1082],{"class":39},[29,1093,1094,1096],{"class":31,"line":353},[29,1095,1076],{"class":39},[29,1097,1098],{"class":47}," expandtab\n",[29,1100,1101],{"class":31,"line":358},[29,1102,212],{"emptyLinePlaceholder":211},[29,1104,1105],{"class":31,"line":372},[29,1106,1107],{"class":35},"\" 自动缩进\n",[29,1109,1110],{"class":31,"line":385},[29,1111,1112],{"class":35},"set autoindent\n",[29,1114,1115],{"class":31,"line":390},[29,1116,212],{"emptyLinePlaceholder":211},[29,1118,1119,1121],{"class":31,"line":397},[29,1120,260],{"class":35},[29,1122,1123],{"class":47}," 显示行号和列号\n",[29,1125,1126,1128],{"class":31,"line":410},[29,1127,1076],{"class":39},[29,1129,1130],{"class":47}," number\n",[29,1132,1133,1135],{"class":31,"line":423},[29,1134,1076],{"class":39},[29,1136,1137],{"class":47}," ruler\n",[29,1139,1140],{"class":31,"line":699},[29,1141,212],{"emptyLinePlaceholder":211},[29,1143,1144],{"class":31,"line":704},[29,1145,1146],{"class":35},"\" 显示当前行\n",[29,1148,1149],{"class":31,"line":709},[29,1150,1151],{"class":35},"set cursorline\n",[29,1153,1154],{"class":31,"line":717},[29,1155,212],{"emptyLinePlaceholder":211},[29,1157,1158,1160],{"class":31,"line":739},[29,1159,260],{"class":35},[29,1161,1162],{"class":47}," 设置行号颜色为灰色\n",[29,1164,1165,1168,1171],{"class":31,"line":769},[29,1166,1167],{"class":35},"highlight",[29,1169,1170],{"class":47}," LineNr",[29,1172,1173],{"class":47}," ctermfg=gray\n",[29,1175,1176],{"class":31,"line":790},[29,1177,212],{"emptyLinePlaceholder":211},[29,1179,1180],{"class":31,"line":813},[29,1181,1182],{"class":35},"\" 让vim可以用鼠标滚轮\n",[29,1184,1185],{"class":31,"line":818},[29,1186,1187],{"class":35},"set mouse=a\n",[29,1189,1190],{"class":31,"line":823},[29,1191,212],{"emptyLinePlaceholder":211},[29,1193,1194],{"class":31,"line":828},[29,1195,1196],{"class":35},"call plug#begin('~\u002F.vim\u002Fplugged')\n",[29,1198,1199,1201,1204,1207,1210],{"class":31,"line":839},[29,1200,260],{"class":35},[29,1202,1203],{"class":47}," Shorthand",[29,1205,1206],{"class":47}," notation",[29,1208,1209],{"class":47}," for",[29,1211,1212],{"class":47}," plugin\n",[29,1214,1215,1218],{"class":31,"line":845},[29,1216,1217],{"class":35},"Plug",[29,1219,1220],{"class":47}," 'jiangmiao\u002Fauto-pairs'\n",[29,1222,1223,1225],{"class":31,"line":856},[29,1224,1217],{"class":35},[29,1226,1227],{"class":47}," 'vim-airline\u002Fvim-airline'\n",[29,1229,1230,1232],{"class":31,"line":861},[29,1231,1217],{"class":35},[29,1233,1234],{"class":47}," 'preservim\u002Fnerdtree'\n",[29,1236,1237,1240,1243],{"class":31,"line":883},[29,1238,1239],{"class":35},"call",[29,1241,1242],{"class":47}," plug#end",[29,1244,1245],{"class":51},"()\n",[29,1247,1248],{"class":31,"line":903},[29,1249,212],{"emptyLinePlaceholder":211},[29,1251,1253,1255,1258,1261],{"class":31,"line":1252},34,[29,1254,1076],{"class":39},[29,1256,1257],{"class":47}," laststatus=",[29,1259,1260],{"class":39},"2",[29,1262,1263],{"class":47},"  \"永远显示状态栏\n",[29,1265,1267,1270,1273,1276],{"class":31,"line":1266},35,[29,1268,1269],{"class":47},"let g:airline_powerline_fonts = 1  \"",[29,1271,1272],{"class":47}," 支持",[29,1274,1275],{"class":47}," powerline",[29,1277,1278],{"class":47}," 字体\n",[29,1280,1282,1285,1288,1291,1294],{"class":31,"line":1281},36,[29,1283,1284],{"class":39},"let",[29,1286,1287],{"class":47}," g:airline#extensions#tabline#enabled",[29,1289,1290],{"class":47}," =",[29,1292,1293],{"class":39}," 1",[29,1295,1296],{"class":47}," \" 显示窗口tab和buffer\n",[94,1298,1299],{},"效果如下：",[94,1301,1302],{},[925,1303],{"alt":1304,"src":1305},"vim 预览","\u002Fimages\u002Fposts\u002Fdotfile_config\u002Fvim.png",[14,1307,1309],{"id":1308},"_4-安装tmux","4. 安装tmux",[19,1311,1313],{"className":21,"code":1312,"language":23,"meta":24,"style":24},"sudo apt install -y tmux\n",[26,1314,1315],{"__ignoreMap":24},[29,1316,1317,1319,1321,1323,1325],{"class":31,"line":32},[29,1318,110],{"class":35},[29,1320,113],{"class":47},[29,1322,116],{"class":47},[29,1324,119],{"class":39},[29,1326,1327],{"class":47}," tmux\n",[1329,1330,1331],"style",{},"html pre.shiki code .sqoU-, html code.shiki .sqoU-{--shiki-default:#B392F0;--shiki-light:#6F42C1}html pre.shiki code .sTU5a, html code.shiki .sTU5a{--shiki-default:#79B8FF;--shiki-light:#005CC5}html pre.shiki code .spKkM, html code.shiki .spKkM{--shiki-default:#F97583;--shiki-light:#D73A49}html pre.shiki code .skb7c, html code.shiki .skb7c{--shiki-default:#9ECBFF;--shiki-light:#032F62}html pre.shiki code .shWlK, html code.shiki .shWlK{--shiki-default:#E1E4E8;--shiki-light:#24292E}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .si27w, html code.shiki .si27w{--shiki-default:#6A737D;--shiki-light:#6A737D}",{"title":24,"searchDepth":58,"depth":58,"links":1333},[1334,1335,1336,1337],{"id":16,"depth":58,"text":17},{"id":99,"depth":58,"text":100},{"id":931,"depth":58,"text":932},{"id":1308,"depth":58,"text":1309},"\u002Fimages\u002Fposts\u002Fdotfile_config\u002Fcover.jpg","2025-12-28",false,"md",{},"\u002Fposts\u002Fdotfile_config\u002Fmain",{"title":5,"description":24},"posts\u002Fdotfile_config\u002Fmain",[1347],"运维","9_-k5Sv2WradtJ4UETT_alxmxqhzTdGZf5PzTK9TOUc",1782672216867]