精华内容
下载资源
问答
  • 创建和编辑单行文字的方法
    2020-12-04 17:32:36

    CSS文字单行溢出和多行溢出隐藏

    单行溢出隐藏

    // 单行溢出隐藏
    overflow: hidden;
    text-overflow:ellipsis;
    white-space: nowrap;
    

    多行溢出隐藏

    // 多行溢出隐藏
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    
    更多相关内容
  • 搭建好环境后源码用vs2019打开可直接运行,基本图形包括:直线、二点创建圆、三点创建圆、三种方法创建圆弧、创建正多边形、创建多段线、创建面域、创建样条曲线、创建椭圆、创建填充、创建单行多行文字创建6种...
  • 主要介绍了python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例,需要的朋友可以参考下
  • 2、UseSingle-Line Text (Text) 使用单行文字(Text命令) The text you add to your drawings conveysa variety of information. It may be a complex specification, title blockinformation, a label, or even ...

    2、UseSingle-Line Text (Text) 使用单行文字(Text命令)

    The text you add to your drawings conveysa variety of information. It may be a complex specification, title blockinformation, a label, or even part of the drawing. For shorter entries that donot require multiple fonts or lines, create an instance of a DBText objectwhich represents a single-line of text and is convenient for labels.

    添加到图形中的文字可以表示好多意思,可以是复杂的技术说明、标题栏信息、标签,甚至图形的部件。对于不需要多种字体和文本行的较短文字,可以通过创建一个DBText对象的实例来创建一个单行文字,用于标签时尤其省事儿。

    Topics in this section

    ·        Create Single-Line Text创建单行文字

    ·        Format Single-Line Text格式化单行文字

    ·        Align Single-Line Text对齐单行文字

    ·        Change Single-Line Text修改单行文字

     

    2.1、CreateSingle-Line Text创建单行文字

    Each individual line of text is a distinctobject when using single-line text. To create a single-line text object, youcreate an instance of a DBText object and then add it to either the block tablerecord that represents Model or Paper space. When you create a new instance ofa DBText object, you do not pass the constructor any parameters.

    使用单行文字时,每一行文字都是一个单独的对象。创建单行文字的方法是:首先创建DBText对象的实例,然后将其添加到代表模型空间或图纸空间的块表记录中。创建DBText对象的实例时,不用给构造函数传递任何参数。

    To Create Line Text 创建单行文字

    The following example creates asingle-line text object in Model space at the coordinate (2, 2, 0) with aheight of 0.5 and the text string "Hello, World.".

    下面这个例子在模型空间创建一个单行文字对象,起点坐标为(2,2,0),文字高度为0.5,文字内容为“Hello, World.”。

    VB.NET

    ImportsAutodesk.AutoCAD.Runtime

    ImportsAutodesk.AutoCAD.ApplicationServices

    ImportsAutodesk.AutoCAD.DatabaseServices

    ImportsAutodesk.AutoCAD.Geometry

     

    <CommandMethod("CreateText")>_

    Public SubCreateText()

      '' Get the current document and database

      Dim acDoc As Document =Application.DocumentManager.MdiActiveDocument

      Dim acCurDb As Database = acDoc.Database

     

      '' Start a transaction

      Using acTrans As Transaction =acCurDb.TransactionManager.StartTransaction()

     

          '' Open the Block table for read

          Dim acBlkTbl As BlockTable

          acBlkTbl =acTrans.GetObject(acCurDb.BlockTableId, _

                                      OpenMode.ForRead)

     

          ''Open the Block table record Model space for write

          Dim acBlkTblRec As BlockTableRecord

          acBlkTblRec =acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _

                                         OpenMode.ForWrite)

     

          '' Create a single-line text object

          Dim acText As DBText = New DBText()

          acText.Position = New Point3d(2, 2, 0)

          acText.Height = 0.5

          acText.TextString = "Hello,World."

     

          acBlkTblRec.AppendEntity(acText)

          acTrans.AddNewlyCreatedDBObject(acText,True)

     

          '' Save the changes and dispose of thetransaction

          acTrans.Commit()

      End Using

    End Sub

    C#

    usingAutodesk.AutoCAD.Runtime;

    usingAutodesk.AutoCAD.ApplicationServices;

    usingAutodesk.AutoCAD.DatabaseServices;

    using Autodesk.AutoCAD.Geometry;

     

    [CommandMethod("CreateText")]

    public static voidCreateText()

    {

      // Get the current document and database获取当前文档及数据库

      Document acDoc =Application.DocumentManager.MdiActiveDocument;

      Database acCurDb = acDoc.Database;

     

      // Start a transaction启动事务

      using (Transaction acTrans =acCurDb.TransactionManager.StartTransaction())

      {

          // Open the Block table for read以读的方式打开Block

          BlockTable acBlkTbl;

          acBlkTbl =acTrans.GetObject(acCurDb.BlockTableId,

                                      OpenMode.ForRead) as BlockTable;

     

          // Open the Block table record Modelspace for write以写的方式打开Block表记录模型空间

         BlockTableRecord acBlkTblRec;

          acBlkTblRec =acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],

                                         OpenMode.ForWrite) as BlockTableRecord;

     

          // Create a single-line text object 创建一个单行文字;

          DBText acText = new DBText();

          acText.Position = new Point3d(2, 2, 0);

          acText.Height = 0.5;

          acText.TextString = "Hello,World.";

     

          // 添加到模型空间

          acBlkTblRec.AppendEntity(acText);

          acTrans.AddNewlyCreatedDBObject(acText,true);

     

          // Save the changes and dispose of thetransaction保存修改,关闭事务

          acTrans.Commit();

      }

    }

    VBA/ActiveX Code Reference

    Sub CreateText()

        Dim textObj As AcadText

        Dim textString As String

        Dim insertionPoint(0 To 2) As Double

        Dim height As Double

     

        ' Create the text object

        textString = "Hello, World."

        insertionPoint(0) = 2

        insertionPoint(1) = 2

        insertionPoint(2) = 0

        height = 0.5

     

        Set textObj = ThisDrawing.ModelSpace. _

                          AddText(textString,insertionPoint, height)

        textObj.Update

    End Sub

     

    2.2、FormatSingle-Line Text格式化单行文字

    A single-text object is created using theactive text style. You can change the formatting of a single-line text objectby changing the text style associated with it, or by editing the properties ofthe single-line text object directly. You cannot apply formats toindividual words and characters with single-line text objects.

    单行文字是使用当前文字样式创建的,我们可以通过修改与之关联的文字样式来修改单行文字的格式,或者通过直接编辑单行文字对象的属性来修改其格式。我们不能对单行文字对象里的单个字和字符进行格式修改。

    To change a text style associated with anindividual single-line text object, set the TextStyleId property to a new text style. Once youhave changed the text style, you must regenerate the drawing or update theobject to see the changes in your drawing.

    要修改与某个单行文字对象关联的文字样式,将其TextStyleId属性设置为新文字样式即可。修改文字样式后,要想看到其效果,需重新生成图形或更新一下该文字对象。

    In addition to the standard editableproperties for entities (color, layer, linetype, and so forth), otherproperties that you can change on a single-line text object include thefollowing:

    除了标准的可编辑实体属性(颜色、图层、线型,等等)外,单行文字还有一些我们可以修改的属性,如下:

    HorizontalMode

    Specifies the horizontal alignment for the text. 表示文字水平对齐;

    VerticalMode

    Specifies the vertical alignment for the text. 表示文字垂直对齐;

    Position

    Specifies the insertion point for the text. 表示文字的插入点;

    Oblique

    Specifies the oblique angle of the individual textobject. 表示每个文字对象的倾角;

    Rotation

    Specifies the rotation angle in radians for the text. 表示文字的旋转角度(弧度);

    WidthFactor

    Specifies the scale factor for the text. 表示文字的放大系数;

    AlignmentPoint

    Specifies the alignment point for the text. 表示文字的对起点;

    IsMirroredInX

    Specifies whether the text is displayed backwards. 表示文字是否反向显示;

    IsMirroredInY

    Specifies whether the text is displayed upside-down. 表示文字是否倒置显示;

    TextString

    Specifies the actual text string displayed. 表示实际显示的文字内容;

    Once you have changed a property,regenerate the drawing or update the object to see the changes made.

    每次修改文字属性后,都要重新生成图形或对该文字对象进行更新,这样才能看到所作的修改。

     

    2.3、AlignSingle-Line Text 对齐单行文字

    You can justify single-line texthorizontally and vertically. Left alignment is the default. To set thehorizontal and vertical alignment options, use the HorizontalMode and VerticalMode properties.

    我们可以对单行文字进行水平和垂直调整。单行文字默认情况下是左对齐的。设置水平对齐和垂直对齐选项,用HorizontalMode属性和VerticalMode属性。

    Normally when a text object is closed, theposition and alignment points of the text object are adjusted according to itsjustification and text style. However, the alignment of an in memory textobject will not automatically be updated. Call the AdjustAlignment method to update the alignment of thetext object based on its current property values.

    通常创建完文字对象时,文字对象的位置和对齐点会依据排版和文字样式作相应调整。不过内存里的文字对象的对齐不会自动更新。可以调用AdjustAlignment方法在当前属性值的基础上更新文字对象的对齐特性。

    Realign text 重新排列文字

    The following example creates asingle-line text (DBText) object and a point (DBPoint) object. The point objectis set to the text alignment point, and is changed to a red crosshair so thatit is visible. The text alignment is changed and you can see the impact ofchanging the text alignment.

    下面的例子创建一个单行文字对象(DBText)和一个点对象(DBPoint)。将点对象设置成文字的对齐点,并将其外形改为红色十字以便可见。修改文字的排列对齐,并查看修改效果。

    VB.NET

    ImportsAutodesk.AutoCAD.Runtime

    ImportsAutodesk.AutoCAD.ApplicationServices

    ImportsAutodesk.AutoCAD.DatabaseServices

    ImportsAutodesk.AutoCAD.Geometry

     

    <CommandMethod("TextAlignment")>_

    Public SubTextAlignment()

      '' Get the current document and database

      Dim acDoc As Document =Application.DocumentManager.MdiActiveDocument

      Dim acCurDb As Database = acDoc.Database

     

      '' Start a transaction

      Using acTrans As Transaction =acCurDb.TransactionManager.StartTransaction()

     

          '' Open the Block table for read

          Dim acBlkTbl As BlockTable

          acBlkTbl =acTrans.GetObject(acCurDb.BlockTableId, _

                                      OpenMode.ForRead)

     

          '' Open the Block table record Modelspace for write

          Dim acBlkTblRec As BlockTableRecord

          acBlkTblRec =acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _

                                         OpenMode.ForWrite)

     

          Dim textString(0 To 2) As String

          textString(0) = "Left"

          textString(1) = "Center"

          textString(2) = "Right"

     

          Dim textAlign(0 To 2) As Integer

          textAlign(0) = TextHorizontalMode.TextLeft

          textAlign(1) =TextHorizontalMode.TextCenter

          textAlign(2) =TextHorizontalMode.TextRight

     

          Dim acPtIns As Point3d = New Point3d(3,3, 0)

          Dim acPtAlign As Point3d = New Point3d(3,3, 0)

     

          Dim nCnt As Integer = 0

     

          For Each strVal As String In textString

              '' Create a single-line text object

              Dim acText As DBText = New DBText()

              acText.Position = acPtIns

              acText.Height = 0.5

              acText.TextString = strVal

     

              '' Set the alignment for the text

              acText.HorizontalMode =textAlign(nCnt)

     

              If acText.HorizontalMode <>TextHorizontalMode.TextLeft Then

                  acText.AlignmentPoint = acPtAlign

              End If

     

              acBlkTblRec.AppendEntity(acText)

             acTrans.AddNewlyCreatedDBObject(acText, True)

     

              '' Create a point over the alignmentpoint of the text

              Dim acPoint As DBPoint = NewDBPoint(acPtAlign)

              acPoint.ColorIndex = 1

     

              acBlkTblRec.AppendEntity(acPoint)

             acTrans.AddNewlyCreatedDBObject(acPoint, True)

     

              '' Adjust the insertion and alignmentpoints

              acPtIns = New Point3d(acPtIns.X,acPtIns.Y + 3, 0)

              acPtAlign = acPtIns

     

              nCnt = nCnt + 1

          Next

     

          '' Set the point style to crosshair

         Application.SetSystemVariable("PDMODE", 2)

     

          '' Save the changes and dispose of thetransaction

          acTrans.Commit()

      End Using

    End Sub

    C#

    usingAutodesk.AutoCAD.Runtime;

    usingAutodesk.AutoCAD.ApplicationServices;

    usingAutodesk.AutoCAD.DatabaseServices;

    usingAutodesk.AutoCAD.Geometry;

     

    [CommandMethod("TextAlignment")]

    public static voidTextAlignment()

    {

      // Get the current document and database获取当前文档及数据库

      Document acDoc =Application.DocumentManager.MdiActiveDocument;

      Database acCurDb = acDoc.Database;

     

      // Start a transaction启动事务

      using (Transaction acTrans =acCurDb.TransactionManager.StartTransaction())

      {

          // Open the Block table for read以读打开Block

          BlockTable acBlkTbl;

          acBlkTbl =acTrans.GetObject(acCurDb.BlockTableId,

                                      OpenMode.ForRead) as BlockTable;

     

          // Open the Block table record Modelspace for write以写打开Block表记录Model空间

          BlockTableRecord acBlkTblRec;

          acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],

                                         OpenMode.ForWrite) as BlockTableRecord;

     

          string[] textString = new string[3];

          textString[0] = "Left";

          textString[1] = "Center";

          textString[2] = "Right";

     

          int[] textAlign = new int[3];

          textAlign[0] =(int)TextHorizontalMode.TextLeft;

          textAlign[1] =(int)TextHorizontalMode.TextCenter;

          textAlign[2] =(int)TextHorizontalMode.TextRight;

     

          Point3d acPtIns = new Point3d(3, 3, 0);

          Point3d acPtAlign = new Point3d(3, 3, 0);

     

          int nCnt = 0;

     

          foreach (string strVal in textString)

          {

              // Create a single-line text object创建单行文字

              DBText acText = new DBText();

              acText.Position = acPtIns;

              acText.Height = 0.5;

              acText.TextString = strVal;

     

              // Set the alignment for the text设置文字的排列

              acText.HorizontalMode =(TextHorizontalMode)textAlign[nCnt];

     

              if (acText.HorizontalMode !=TextHorizontalMode.TextLeft)

              {

                  acText.AlignmentPoint =acPtAlign;

              }

     

              acBlkTblRec.AppendEntity(acText);

             acTrans.AddNewlyCreatedDBObject(acText, true);

     

              // Create a point over the alignmentpoint of the text在文字的对齐点上创建一个点对象

              DBPoint acPoint = newDBPoint(acPtAlign);

              acPoint.ColorIndex = 1; //红色

     

              acBlkTblRec.AppendEntity(acPoint);

             acTrans.AddNewlyCreatedDBObject(acPoint, true);

     

              // Adjust the insertion and alignmentpoints

              acPtIns = new Point3d(acPtIns.X,acPtIns.Y + 3, 0);

              acPtAlign = acPtIns;

     

              nCnt = nCnt + 1;

          }

     

          // Set the point style to crosshair设置点样式为十字

         Application.SetSystemVariable("PDMODE", 2);

     

          // Save the changes and dispose of thetransaction保存修改并关闭事务

          acTrans.Commit();

      }

    }

    VBA/ActiveX 代码参考

    Sub TextAlignment()

        ' Set the point style to crosshair

        ThisDrawing.SetVariable "PDMODE",2

     

        Dim textObj As AcadText

        Dim pointObj As AcadPoint

     

        ' Define the text strings and insertionpoint for the text objects

        Dim textString(0 To 2) As String

        textString(0) = "Left"

        textString(1) = "Center"

        textString(2) = "Right"

     

        Dim textAlign(0 To 2) As Integer

        textAlign(0) = acAlignmentLeft

        textAlign(1) = acAlignmentCenter

        textAlign(2) = acAlignmentRight

     

        Dim insertionPoint(0 To 2) As Double

        insertionPoint(0) = 3: insertionPoint(1) =0: insertionPoint(2) = 0

     

        Dim alignmentPoint(0 To 2) As Double

        alignmentPoint(0) = 3: alignmentPoint(1) =0: alignmentPoint(2) = 0

     

        Dim nCnt As Integer

        For Each strVal In textString

            ' Create the Text object in model space

            Set textObj = ThisDrawing.ModelSpace. _

                            AddText(strVal,insertionPoint, 0.5)

     

            ' Set the alignment for the text

            textObj.Alignment = textAlign(nCnt)

     

            On Error Resume Next

            textObj.TextAlignmentPoint =alignmentPoint

     

            ' Create a point over the alignmentpoint of the text

            Set pointObj = ThisDrawing.ModelSpace.AddPoint(alignmentPoint)

            pointObj.color = acRed

     

            ' Adjust the insertion and alignmentpoints

            insertionPoint(1) = insertionPoint(1) +3

            alignmentPoint(1) = insertionPoint(1)

     

            nCnt = nCnt + 1

        Next

    End Sub

     

    2.4、ChangeSingle-Line Text修改单行文字

    Like any other object, text objects can bemoved, rotated, erased, and copied. You also can mirror text. If you do notwant the text to be reversed when you mirror it, you can set the MIRRTEXTsystem variable to 0. You move, rotate and copy objects using the TransformBy and Clone methods. For more information on the TransformBy and Clone methods, see EditNamed and 2D Objects.

    就像操作其他对象一样,我们也可以对文字对象进行移动、旋转、删除和复制等修改。还可以对文字进行镜像操作。镜像文字时,如果不想反向文字,可以将系统变量MIRRTEXT设置为0。移动、旋转和复制对象使用TransformBy方法和Clone方法。关于TransformBy方法和Clone方法的详细内容,见“编辑命名对象和二维对象”一节。

    见 http://blog.csdn.net/sunchengbo2007/article/details/6654747

     


    展开全文
  • 本文实例为大家分享了PyQt5单行文本框展示的具体代码,供大家参考,具体内容如下QLineEdit 是一个允许输入和编辑纯文本的单行控件。系统中的撤销、重做、复制、剪切粘贴都可用于该控件。#!/usr/bin/python3# -*- ...

    本文实例为大家分享了PyQt5单行文本框展示的具体代码,供大家参考,具体内容如下

    QLineEdit 是一个允许输入和编辑纯文本的单行控件。系统中的撤销、重做、复制、剪切和粘贴都可用于该控件。

    #!/usr/bin/python3

    # -*- coding: utf-8 -*-

    """

    PyQt5 教程

    这个例子中,在QLineEdit中输入的文字实时的在QLabel中显示出来。

    作者:我的世界你曾经来过

    博客:http://blog.csdn.net/weiaitaowang

    最后编辑:2016年8月4日

    """

    import sys

    from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QLabel

    class Example(QWidget):

    def __init__(self):

    super().__init__()

    self.initUI()

    def initUI(self):

    self.lb1 = QLabel(self)

    qle = QLineEdit(self)

    qle.move(60, 100)

    self.lb1.move(60, 40)

    qle.textChanged[str].connect(self.onChanged)

    self.setGeometry(300, 300, 280, 170)

    self.setWindowTitle('单行文本')

    self.show()

    def onChanged(self, text):

    self.lb1.setText(text)

    self.lb1.adjustSize()

    if __name__ == '__main__':

    app = QApplication(sys.argv)

    ex = Example()

    sys.exit(app.exec_())

    这个例子显示了一个单行文本控件和一个标签控件。我们在单行文本控件中编辑键入文本时在标签控件中立即显示出来。

    qle = QLineEdit(self)

    创建一个 QLineEdit 控件对象

    qle.textChanged[str].connect(self.onChanged)

    如果单行文本控件的文本改变了,我们调用的onChanged()方法。

    def onChanged(self, text):

    self.lb1.setText(text)

    self.lb1.adjustSize()

    在onChanged()方法中,我们设置了标签控件中显示单行文本控件的内容。adjustSize()方法将标签的大小调整到文本的长度。

    程序执行后

    201907150054162596.png

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

    展开全文
  • Linux 使用Vim创建和编辑文本文件

    千次阅读 2020-06-15 13:46:14
    文本文件的优点是它们可以在系统之间移动或者共享,无需转换,而且可以通过任何简单文本编辑器进行查看和编辑。vim就是其中一种文本编辑器。 1、为何要掌握vim? 那么问题来了,文本编辑器那么多,为什么我们一定...

    一、什么是vim?

    Linux的一个重要设计原则就是信息存储在基于文本的文件中,因此使用文本编辑器来编辑配置文件非常重要与常见。文本文件包括无格式文件(内有多行相似的信息,如/etc中的配置文件)和可扩展标记语言(XML)文件(通过文本标记定义数据结构,如/etc和/usr中的应用配置文件)。文本文件的优点是它们可以在系统之间移动或者共享,无需转换,而且可以通过任何简单文本编辑器进行查看和编辑。vim就是其中一种文本编辑器。

    1、为何要掌握vim?

    那么问题来了,文本编辑器那么多,为什么我们一定要掌握vim编辑器的使用方法?每个系统管理员对于文本编辑器都有偏好,一些人会选择gedit,另一些则喜欢nano,设置还有人选用emacs。即使已经有选用的编辑器,也务必要掌握vim或vi的基本知识,原因很简单:vim是随Linux和UNIX系统分发的vi编辑器的改进版本。无论操作的系统是什么,此款编辑器都能可靠地安装。

    2、vim和vi的区别?

    vim是vi的高级版本,具有vi的所有文字处理功能,且具有许多原版vi中没有的功能,但基本上依然保持向后的兼容性。新功能中包含了广受欢迎的选项,如语法突出显示、补全模式和拼写检查等。

    说明:Linux操作系统上调用vi命令时,有时候发现执行的命令是vim。这是shell启动时通过/etc/profile.d/vim.sh中设置的别名完成的。在需要比较新的功能时,建议始终执行vim,而不要依赖不一定可用的别名。用户通常必须以root身份操作时尤其建议这么做。

     

    3、vim的三种模式

    开始学习喽!vim并不是最容易学习的编辑器,其部分原因是vim中的所有命令都以速度和效率为目标而设计,不易记忆,另一部分原因在于vim是模拟编辑器。模拟编辑器意味着特定命令和按键操作的功能取决于活动状态的模式是什么。Vim有三个主要工作模式详细见下。

    从上图可以看出一般模式可以与插入模式及命令模式切换,但是插入模式和命令模式之间不可切换。三种模式详细解释见下:

    l  一般模式是vim打开文件的默认模式,用于文件导航、剪切和粘贴以及简单命令。撤销、恢复和其他操作也从此模式中执行。可使用“上下左右”按键来移动光标。

    l  插入模式用于常规文本编辑。替换模式是插入模式的一种遍体,可以替换而不是插入文本。

    l  命令模式用于保存、退出和打开文件,以及搜索、替换和其他更为复杂的操作。从此模式中,可以将程序的输入输出插入到当前文件中,以及配置vim等的功能。使用ex可以实现的所有功能都可以从此模式执行。

    了解到这个基础知识,你就可以开始简单的使用vim进行文本编辑了!

     

    原因分析

    二、vim基本工作流程

    1、打开文本文件

    使用vim文本编辑器开始编辑文件有一个最简易的做法,就是将其指定为命令行上的一个参数。比如我们要编辑/etc目录下的passwd文件,可以执行以下命令:

    root@HZ-CAS01-CVK01:/# vim /etc/passwd

    说明:

    如果尝试打开编辑的文件并不存在,但是却存在指定的目录,vim将通知您正在编辑一个[新文件],并将在首次进行保存时创建该文件。

    例如您想编辑的是/etc目录下的passwd文件,结果输入命令的时候输成了password文件,如下所示:

    root@HZ-CAS01-CVK01:/# vim /etc/password

    实际/etc目录下没有该文件,但是/etc目录是可达的。所以执行完命令后,在左下角会提示“/etc/password”[New File]。此时如果退出编辑时候选择保存则该文件就会被创建,如果直接退出则不会创建。

    打开文件后,vim将在一般模式中启动。此时可以在屏幕左下角看到有关已打开的文件信息(文件名、行数、字符数),并将在右下角看到当前的光标位置(行、字符)以及正在显示文件的哪个部分(All表示全部,Top表示文件的前几行,Bot表示文件底部,或者显示百分比来表示您所处的文件位置)。最下方线条在vim术语中成为标尺。

     

     

    2、编辑文本

    如果之前使用过vi或者vim,可能会发现一般模式中多数键并不会完全执行预期的操作。比如敲“i”键后文本中不会键入i字母。这是因为在一般模式中,键的映射不是为了插入所按下的字符,而是为了执行诸如光标的移动、复制和粘贴等操作的命令。在插入模式下可正常插入或者取代方式编辑文件。

    那么问题来了,如何进入插入模式?系统提供了可用的命令能够从一般模式切换到插入模式,且每个命令在键盘上均分配有一个不同的键:

    按键

    执行结果

    i

    切换到插入模式,并在当前光标位置之开始插入(插入)

    I

    将光标移至当前行的开头位置,并切换至插入模式

    a

    切换到插入模式,并在当前光标位置之开始插入(附加)

    A

    将光标移至当前行的结尾位置,并切换至插入模式

    R

    从光标下的字符开始,切换到插入模式。处于插入模式时,不会插入文本,此时输入的每个字符均将替换掉当前文档的字符。(vim和vi也具有更多更强大的替换命令,详细见第三章第8节

    o

    在当前行的下方新打开一个行,并切换到插入模式

    O

    在当前行的上方新打开一个行,并切换到插入模式

    每次处于插入模式时,标尺将会显示—INSERT--或者—REPLACE--。要返回至命令模式,可以按Esc。详细三种模式切换关系见“vim的三种工作模式”小节。

    在一般模式中移动光标可以使用多个按键,这些按键执行效果见下,移动好光标后再进入插入模式进行编辑会非常方便:

    按键

    在一般模式中光标移动结果

    h

    光标向左移动一个位置

    l

    光标向右移动一个位置

    j

    光标向下移动一行

    k

    光标向上移动一行

    ^

    移至当前行的开头位置

    $

    移至当前行的结尾位置

    gg

    移至文档的第一行

    G

    移至文档的最后一行

    说明:Esc将会取消当前命令,或者返回至一般模式。常见的做法是按两下Esc(或者按更多下),以确保返回至命令模式。

    3、保存文本文件

    在vim中保存文件时通过在命令模式中实现的。要进入命令模式,可在一般模式中按:(冒号)并等待键入命令(详细见第一张的第3节)。通过按Enter可完成命令。

    以下简要列出从命令模式保存并推出当前文件时可使用的命令。

    按键

    执行结果

    :wq

    保存并退出当前文件

    :w

    保存当前文件并留在编辑器中

    :w!

    若文本为只读模式,强制保存

    :q

    退出当前文件(仅在没有未保存更改的情况下)

    :q!

    退出当前文件,忽略任何未保存的修改

    简要概括来说,w用于保存(写入),q用于退出,!用于强制执行操作。

    说明:表中以及后续表格并非所有命令,仅列出常用命令。

    4、帮助

    vim在编辑器中提供内容广泛的在线帮助。在一般模式下键入:help将启动第一个屏幕,其中包括导航帮助所需的帮助。

    通过在命令模式中键入:help subject,可获取有关特定主题的帮助。

    帮助屏幕在新的拆分窗口中打开并可使用:q关闭。要了解更多拆分窗口的更多所信息,使用:help windows。

    三、使用vim编辑

    1、移动快捷方式(一般模式)

    除了用户可以在一般模式中执行单调而老套的单字符/单行光标移动外,也有一些高级移动命令,帮助用户更加高效地在文本中导航。这些快捷方式可以使光标按照单词、句子或段落移动。请注意,与常规的光标移动不同,这些命令仅可以在一般模式中使用,而不能在插入模式中使用。

    按键

    执行结果

    w

    将光标移到下一个单词的开头(W包含标点符号)

    b

    将光标移到上一个单词的开头(B包含标点符号)

    (

    将光标移到当前或上一句子的开头

    )

    将光标移到下一句子的开头

    {

    将光标移到当前/上一段落的开头

    }

    将光标移到下一段落的开头

    2、替换文本(一般模式)

    vim允许用户通过“change”命令替换大量(和少量)文本。

    “change”命令的使用方法为:按c键,后面加上光标移动;例如cw可以将当前光标位置更改到当前单词的末尾。要替换的文本被删除(防止到未命名寄存器中),vim也会切换到插入模式。

    可以通过一些快捷方式提高编辑的效率:

    按键

    执行结果

    cc

    开始以行范围的方式替换,即替换一整行(或者带上数字前缀时替换多行)。同样的技巧也是用于许多其他命令(如删除)。

    i或者a做前缀

    以选择inner或a版本的移动。例如,ciw将替换整个当前单词,而不仅仅是从当前光标位置起,而caw则执行相同的功能,但包含周围的任何空白区。

    c$或者C

    替换到行末为止

    r

    替换光标处的字符

    ~

    改变光标处字符的大小写

    3、删除文本(一般模式)

    用于删除文本的命令是d,而且对更改文本有效的所有相同移动也适用于删除,包括D可以删除光标位置到行末的内容。要仅删除光标处的字符,可使用x。具体删除文本的操作方式和替换文本相同,如删除光标所在整行可输入dd,如果要删除光标所在行的内容可输入D。详细见下:

    按键

    执行结果

    x

    向后删除一个字符

    X

    向前删除一个字符

    dd

    删除光标所在的那一行

    ndd

    删除光标所在的向下n行(n为数字)

    D

    删除光标所在行的内容(不删除行)

    d1G

    删除光标所在行到第一行的所有数据

    dG

    删除光标所在行到末行的所有数据

    4、复制和粘贴(一般模式)

    vim用于描述和粘贴操作的术语与大多数人目前熟悉的稍有不同。复制操作成为拖拉,而粘贴则叫做放置。这体现在分配给这些操作的键盘命令上:拖拉是y键加上移动,而放置操作则通过p和P执行。

    拖拉操作遵循与替换和删除操作相同的通用方案:用户可以选择键入要重复某一操作的的次数,后面加上y,再加上一种移动。例如,5yaw将复制当前的单词,以及后面四个单词(共五个)。按yy将拖拉一整行等等。

    放置(黏贴)通过p和P命令执行;小写p将内容放置到当前光标位置的后面(如果粘贴的是行范围的数据,则放在当前行的下面),而大写P则放置到当前光标位置的前面或者当前行上方。与所有命令一样,放置命令可以加上寄存器黏贴次数作为前缀。

    寄存器:

    vim不是仅提供一个供复制与粘贴使用的剪贴板,而是提供26个命名寄存器,以及多个特殊用途的寄存器。拥有多个寄存器可以让用户更加高效的执行剪切和粘贴,而不必担心丢失数据,或者过多地移动光标。如果未指定要使用的寄存器,则将使用“未命名”寄存器。常规寄存器成为a到z,通过在命令的技术和实际命令之间放入“registername”来选择。例如,要复制当前行和后面两行到t寄存器中,用户可以使用3*tyy命令。

    要放置命名寄存器中的内容,只需在放置命令之前加上“registername”。例如,sp将在光标位置后面放置s寄存器中的内容。

    重要:每次使用命名寄存器时,未命名寄存器也会更新。

    删除和更改操作也可以加上寄存器选择作为前缀。未指定寄存器时,将仅使用未命名寄存器。当使用寄存器的大写版本时,被剪切或拖拉的文本将附加到该寄存器,而不是覆盖它。

    特殊寄存器:

    有10个数字编号的寄存器,分别为“0”到“9”。寄存器“0”将始终拥有最近拖拉的文本的副本,而寄存器“1”则具有最近删除的文本的副本。当新的文本被更改或删除时,“1”的内容将移到“2”中,“2”的内容将移到“3”中。

    重要:与命名寄存器不同,数字编号寄存器的内容不会在会话之间保存。

    5、搜索(一般模式)

    在当前文档中搜索可以通过2种方法启动,按/键从光标处向后搜索,或者按?键从当前光标位置向前搜索。当进入搜索模式后,可以键入要搜索的正则表达式,然后按Enter键调到第一个匹配项(若有)。

    按键

    执行结果

    /

    从光标处向后搜索:在“/”后输入要搜索的内容,按Enter键开始搜索

    从光标处向前搜索:在“?”后输入要搜索的内容,按Enter键开始搜索

    6、搜索和替换(命令模式)

    vim中的搜索和替换通过命令模式实施,其使用的语法与用户通过sed搜索和替换时使用的相同,包括使用正则表达式进行搜索的功能:

    ranges/pattern/string/flages

    range可以是行号(42)、行号范围(1,7表示第1-7行)、搜索条件(/README\.txt/)、%(当前文档中的所有行;搜索和替换通常仅针对当前行操作),或者’<,’>(当前的可视选择)。

    两个最为常见的是flages是:g(替换一行中多个位置的pattern)和i(使当前的搜索区分大小写)。

    搜索和替换案例

    例如,要在所有行中搜索每个位置上的“cat”一词并将它替换成“dog”,不区分大小写,但仅针对完整的词语而不是诸如“catalog”中的一部分,可以使用下列命令:

    :%s\<cat\>/dog/gi

    7、文本显示和取消显示行号(命令模式)

    vim编辑文本过程中显示行号,在编辑过程中非常方便。

    按键

    执行结果

    :set nu

    显示行号

    :set nonu

    取消显示行号

    8、撤销和恢复(一般模式)

    为了允许人为误差的存在,vim配备了撤销/恢复机制。只要在一般模式中按u即可撤销最近一个操作i。如果撤销了过多的操作,按Ctrl+r即可恢复最近一次撤销。

    奖励诀窍:从一般模式中按.(句点)将对当前行恢复最近一个编辑操作。这可以用于对多行轻松执行同一编辑操作。

    参考:vim(1)man page和vim内置帮助。

    解决办法

     

    建议与总结

    四、摘要小结

    vim文本编辑器

    vim有三个主要模式:

    l  一般模式用于文件导航和简单命令

    l  插入模式用于常规文本编辑

    l  命令模式用于保存、推出和执行更为复杂的制定

    vim基本工作流程

    l  光标键和hikl均可用于移动光标

    l  Escape用于退出当前命令或者模式,按两下可始终在一般模式中终止

    l  :w用于保存,:q用于退出,:wq用于保存和退出

    使用vim编辑

    l  快速光标命令:wb(){}

    l  c进入更改模式

    l  d和y用于剪切和复制,p用于粘贴

    五、实战练习

    实验要求:

    1、在/vms路径下创建新文件vim-practice.txt

    2、插入以下文本

    This is my vim practice.txt

    There are many like it,but this one is mine.

    3、在底部插入新行,并键入以下内容:

    More lines,I want more line!

    4、撤销之前的编辑

    5、恢复(即撤销刚才的撤销操作)最近的编辑

    6、保存并退出该文件。

     

    实验操作指导:

    1、创建文件:在vim中打开(新)文件/vms/vim-practice。不必事先创建此文件。原因见第二章第一节的说明。

    root@HZ-CAS01-CVK01:~# vim /vms/vim-practice.txt

    2、编辑文件

    a)   按i或者a进入插入模式(详细模式之间的转换见第一章的第三小节“vim的三种模式”)

    b)   按键键入要求显示的文本

    c)   按Esc以返回一般模式

    3、编辑已有文件,在文件底部编辑

    a)   按o以在当前行的下方打开一个新行并立即从一般模式切换至插入模式

    b)   按键键入要添加行的内容

    c)   按Esc以返回一般模式

    4、在一般模式下按u键可撤销最近编辑

    5、按Ctrl+R恢复最近的撤销

    6、保存并退出

    在一般模式中,输入:wq,然后按Enter即保存了编辑的文本并退出vim编辑器。

     

    原文链接http://kms.h3c.com/View.aspx?id=41902#

    转载于H3C-案例平台 历梦如

    展开全文
  • 我知道三重引号字符串用作文档字符串,但是是否真的需要两个字符串文字?...解决方法:明确说明创建多行字符串文字的优点可能通过以下示例得到最好的证明:with open("filename.ext) as f:for line in ...
  • AutoCAD 2016中文版精彩百例视频教程
  • //QLineEdit设置背景文字 pInputHBoxLayout->addWidget(pInputLabel); pInputHBoxLayout->addWidget(m_pInputLineEdit); QHBoxLayout *pAgainHBoxLayout = new QHBoxLayout; QLabel *pAgainLabel = new ...
  • 第五章 创建和编辑AutoCAD对象

    千次阅读 2020-10-09 19:22:44
    创建二维对象 图形对象创建于ModelSpace集合、PaperSpace集合或Block对象中。 import win32com.client AcadApp = win32com.client.Dispatch("AutoCAD.Application.19") ActiveDocument = AcadApp.ActiveDocument ...
  • AutoCAD 2016中文版精彩百例视频教程
  • Java Swing JTextField:单行文本框组件Swing 中使用 JTextField 类实现一个单行文本框,它允许用户输入单行的文本信息。该类的常用构造方法如下。JTextField():创建一个默认的文本框。JTextField(String text):...
  • 使用Vim创建和编辑文本文件

    万次阅读 多人点赞 2018-03-28 15:53:41
    一、什么是vim? Linux的一个重要设计原则就是信息存储在基于文本的文件中,因此使用文本编辑器来编辑...文本文件的优点是它们可以在系统之间移动或者共享,无需转换,而且可以通过任何简单文本编辑器进行查看...
  • AutoCAD 2017机械绘图实例视频教程
  • AutoCAD 2017机械绘图实例视频教程
  • 创建和编辑AutoCAD对象(VBA&python)

    千次阅读 2020-04-28 16:35:15
    创建python与CAD的连接 在这里插入代码片 创建直线 1. 通过两个点创建直线 RetVal = object.AddLine(StartPoint, EndPoint) StartPoint, EndPoint:Variant[变体] (三元素双精度数组); VBA示例: Sub Example_Add...
  • AutoCAD 2014从入门到精通视频教程
  • QLineEdit 简介 QLineEdit是一个单行文本输入控件,可...QLineEdit中常用方法: setAlignment():按规定的方式对齐文本; clear(): 清除文本框内容; setEchoMode():设置文本框的显示格式; setPlaceholderte
  • 很多小伙伴都想知道Word2007中怎么将文字转换为表格的,今天小编就...Word2007能够识别常见的分隔符,例如段落标记(用于创建表格行)、制表符逗号(用于创建表格列)。例如,对于只有段落标记的多个文本段落,Word200...
  • 如下css可以实现文本框(单行、多行)的圆角: input[type=text],textarea{border-radius:3px;border:1px solid #000;} border-radius用法如下: border-radius 属性是一个简写属性。如何添加带文本...
  • SharePoint Online 创建和使用栏

    千次阅读 2017-11-27 10:26:10
    前言 本文介绍如何在Office 365中创建和使用栏。 正文 通过登录地址登录到Office 365的SharePoint Online站点中,我们可以在右上角的设置菜单中,进入网站内容; 找到我们要用来演示的列表,如下图: ...
  • tkinter单行文本框Entry用代码讲解

    千次阅读 2021-11-16 19:45:33
    下面讲解的属性和方法有些常用,有些不常用,不常用的,看一下,了解一下就行了。 我先准备好测试代码: fromtkinterimport* root=Tk()  #第3行准备加入代码,讲解相关属性 en1.pack(p...
  • Qt QLineEdit单行输入框用法详解

    千次阅读 2022-01-24 12:52:50
    QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示: 图 1 单行文本输入框 实际开发中,我们经常用到 QLineEdit 输入框,比如接收用户输入的个人信息、账户信息、...
  • java 通过itext 生成pdf、生成带文本域的pdf、生成带签名的pdf域,根据指定文字生成签名域。
  • 单行文字指令的快捷键是___。3. 平面图出图比例1:100,一般情况下,房间名称的文字高度是___。4. 高版本CAD的CO指令,默认多重复制,选择对象基点,可连续复制多个对象。( )5. 单行文字修改指令下达的方式有...
  • 3D创建三维多边形网格对象[借鉴].pdf
  • AutoCAD 2017机械绘图实例视频教程
  • 第4章 编辑对象.DOC

    2021-09-14 15:19:57
    第4章 编辑对象.DOC
  • 单行文本输入框当type="text"时,...标记除了有两个必选的属性nametype外,还有3个可选的属性:maxlength,sizevalue。(1). maxlength:设置单行输入框可以输入的最大字符数,例如限制邮政编码为6个数字,密码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,201
精华内容 5,280
关键字:

创建和编辑单行文字的方法