Weir nació en Carluke (Kirkstyle) en Lanarkshire, descendiente de una de las familias más ricas y antiguas del Condado, de Weir-de Veres, hijo de Thomas Weir y su esposa Lady Jean Somerville quién tenía fama de clarividente. Su abuelo paterno era William Weir, o Vere, de Stonebyres. Weir era un firmante de la Liga Solemne. Como lugarteniente, sirvió en Ulster durante la Rebelión irlandesa de 1641. En 1650, obtuvo el puesto de comandante de la guardia de la Ciudad de Edimburgo, por ello adquirió el rango de mayor. Cuándo el general Montrose fue traído a Edimburgo para su ejecución, Weir le maltrató durante su custodia.